执行带有 的表达式时eval()
,某些输入的输出是错误的。我认为不考虑十进制值。
我一直在尝试用 python 评估一个字符串,eval()
也尝试过numexpr()
def _calc_line_base_amount(text):
num = '0123456789*-+/()'
# here text = "3/2*5"
if text:
for char in text:
if char not in num:
text = text.replace(char, "")
return eval(str(text))
也试过这个
import numexpr as ne
print(ne.evaluate("3/2*5"))
输入 3/2*5 预期输出 7.5 实际输出为 5
编辑:: 在 python3+ 中它可以工作。但我正在运行这个 python2.7