最近我一直在想一个更好的方法来做计算器。因为现在我只需要像这样手动操作:
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的解决方案。