0

执行带有 的表达式时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

4

1 回答 1

0

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

使用函数 eval() 7.5

使用 numexpr numexpr 7.5

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

于 2019-10-18T08:52:08.333 回答