在 python 3.7 中评估数学字符串
Evaluate mathematical strings in python 3.7
我正在寻找专门针对 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
我正在寻找专门针对 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