函数不返回正确的值,是否缺少任何内容



当执行带有eval()的表达式时,某些输入的输出是错误的。我认为不考虑十进制值。

我一直在尝试用pythoneval()评估字符串,也尝试了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

两者都工作正常,并提供相同的输出

使用函数 eval(( 7.5

使用 numexpr numexpr 7.5

确保你已经为第二个安装了nuexpr,并确保你使用的是python3。

相关内容

  • 没有找到相关文章

最新更新