我正在尝试制作可以使用基本 4 个运算符解决表达式的计算器,例如 1+2*3-4/5,但是它不起作用,我不知道出了什么问题。请检查我的代码。当我运行它时,我在 8 行中收到了无数个错误。return ret(parts[0]) * ret(parts[2])
这是代码
def ret(s):
s = str(s)
if s.isdigit():
return float(s)
for c in ('*','/','+','-'):
parts = s.partition(c)
if c == '*':
return ret(parts[0]) * ret(parts[2])
elif c == '/':
return ret(parts[0]) / ret(parts[2])
elif c == '+':
return ret(parts[0]) + ret(parts[2])
elif c == '-':
return ret(parts[0]) - ret(parts[2])
print(ret('1+2'))
错误回溯以:
File "C:\Python33\calc.py", line 8, in ret
return ret(parts[0]) * ret(parts[2])
File "C:\Python33\calc.py", line 2, in ret
s = str(s)
RuntimeError: maximum recursion depth exceeded while calling a Python object