有没有可能使计算器更高效?如果是这样,如何?

问题描述

最近我一直在想一个更好的方法来做一个计算器。 因为现在我只是像这样手动操作:

if action == "+":
   answer = firstNum + secondNum
elif action == "*":

依此类推,每一个标志... 我怎样才能做到这一点而不必手动完成每个标志?

解决方法

由于我们在 Python 中没有 Switch,您可以这样做:

>>> a = '1+3'
>>> eval(a)
4

>>> t1 = 1
>>> t2 = 3
>>> eval('t1 + t2')
4

>>> exec(f'b = {a}')
>>> b
4

否则,您需要为每一项做和 if/elif 声明。 我建议使用 eval,因为 exec 执行动态代码。
不知道这是否存在安全问题(可能),或性能问题。

Edit1:如果您不相信方程的起源,则不应使用其中的任何一个。如果是这样,你需要做更多的 If 和 elses,或者使用 DeepSpace 的解决方案。