在python 3.7中评估数学字符串[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在寻找一个专门针对python 3.7的函数。我在一个字符串中有一个数学表达式:

str="2^10"   #Expected output: 1024

在python 3.7中是否有任何内置函数来评估它?

P.S:eval()函数不起作用。

python math expression formula python-3.7
1个回答
2
投票

Python中的电源操作符号是**,而不是^。所以,先改变你的字符串。

str_ ="2^10"

print(eval(str_.replace('^', '**')))  # -> 1024

请注意,eval是一个潜在的非常危险的功能。不要盲目使用它。


更安全的方法是使用(非标准)模块numexpr

import numexpr

print(numexpr.evaluate(str_.replace('^', '**')))  # -> 1024

另请注意,不用"^"替换"**"会导致8。这是因为在Python中^binary XOR

© www.soinside.com 2019 - 2024. All rights reserved.