这个问题在这里已有答案:
我正在寻找一个专门针对python 3.7的函数。我在一个字符串中有一个数学表达式:
str="2^10" #Expected output: 1024
在python 3.7中是否有任何内置函数来评估它?
P.S:eval()函数不起作用。
Python中的电源操作符号是**
,而不是^
。所以,先改变你的字符串。
str_ ="2^10"
print(eval(str_.replace('^', '**'))) # -> 1024
请注意,eval
是一个潜在的非常危险的功能。不要盲目使用它。
更安全的方法是使用(非标准)模块numexpr
。
import numexpr
print(numexpr.evaluate(str_.replace('^', '**'))) # -> 1024
另请注意,不用"^"
替换"**"
会导致8
。这是因为在Python中^
是binary XOR