字符串中的数学表达式:
'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
。