字符串中的数学表达式:
'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})
它给出了正确的答案,但是我想要替代方法。
任何帮助表示赞赏。谢谢。
答案 0 :(得分:1)
尝试简单软件包:
它是 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})
有关更多信息,请查看here.
答案 1 :(得分:-2)
您可以看到下面的示例。
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
如果AA*0.016
,该方法返回(BB-CC) > AA
,否则返回(BB-CC)*0.16
。