最近我一直在想一种做计算器的更好的方法。因为现在我只需要像这样手动完成:
if action == "+":
answer = firstNum + secondNum
elif action == "*":以此类推,每一个征兆。我如何才能做到这一点,而不必手动完成每个标志??
发布于 2021-02-16 03:20:37
因为我们在Python中没有开关,所以你可以这样做:
>>> a = '1+3'
>>> eval(a)
4
>>> t1 = 1
>>> t2 = 3
>>> eval('t1 + t2')
4
>>> exec(f'b = {a}')
>>> b
4否则,您将需要为每个对象执行和if/elif语句。我推荐使用eval,因为exec执行动态代码。
Idk如果这有安全问题(可能),或者性能问题。
Edit1:如果你不信任方程式的原始,你就不应该使用这些。如果是这样的话,你需要创建更多的If和elses,或者使用深度空间的解决方案。
https://stackoverflow.com/questions/66213727
复制相似问题