评估包含if else关键字的数学表达式

时间:2018-10-25 07:52:40

标签: python python-3.x

字符串中的数学表达式:

'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})

它给出了正确的答案,但是我想要替代方法。

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

2 个答案:

答案 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