有可能使计算器更有效率吗?如果有,是怎么做到的?



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

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和else,或者使用DeepSpace的解决方案。

相关内容

最新更新