在 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