2017-07-31 5 views

答えて

0

必要な情報を得るにはa.argsを使用できます。最初に数値を含むタプルを返し、次に単位を返します。例:

import sympy.physics.units as u 
a = 133.05*u.kg/u.m 
print(a.args[0]) 
print(type(float(a.args[0]))) 
+0

あなたは正しいです!奇妙なことはここで起こると思う...たとえば、私は最初に質問に答えた、私の答えは正しいと動作します。実際は同じです。なぜそれが良いのかを説明するコメントがありがたいです:) – manelfp

+1

まあ、アプローチはかなり違っています:文字列に変換し、文字列演算を行うか、sympyの組み込み関数を使用します。そこでOPは彼がどのアプローチを最も好きで、おそらく彼のニーズをより良く解決するかを決めました。彼はたくさんの変数に取り組んでいるかもしれませんし、この方法がより速いことがわかりました。あるいは、別の文字列操作に頼らなくても、単位を簡単に取得できるという追加の利点があります。 – Hannebambel

+0

偉大な仕事!ありがとうございました! – manelfp

0

もし、その単位なしで値を取得したいのであれば、その文字列を分割することができます。それは私が考えることができる簡単な方法です。

In [1]: import sympy.physics.units as u 

     a = 133.05*(u.kg/u.m) 

     new_a = float(str(a).split('*')[0]) 

     print(new_a) 

Out[1]: 133.05