计算包含 python 中 if else 关键字的数学表达式



字符串中的数学表达式:

'AA*0.16 if ((BB-CC)> AA) else (BB-CC)*0.16'

哪里AA = 10, BB = 15, CC = 14

这是可能的eval

喜欢eval('AA*0.16 if ((BB-CC)> AA) else (BB-CC)*0.16',{'AA':10,'BB': 15,'CC':14})

它给出了正确的答案,但我想要这样做的替代方案。

任何帮助表示赞赏。谢谢。

尝试简单包:
它是eval的安全版本,您可以通过覆盖 if 的功能来修改此安全级别。

from simpleeval import simple_eval
simple_eval('AA*0.16 if ((BB-CC)> AA) else (BB-CC)*0.16',names={'AA':10,'BB': 15,'CC':14})

有关更多信息,请在此处查看。

您可以看到下面的示例。

def math_method(AA,BB,CC):
return AA*0.016 if ((BB-CC)> AA) else (BB-CC)*0.16
print(math_method(10,15,14))
>> 0.16

如果(BB-CC) > AA,该方法将返回AA*0.016,否则将返回(BB-CC)*0.16

最新更新