我是新來堆棧溢出這是我的第二個問題,所以請忍受我。我正在創建一個簡單的計算器程序。下面的代碼:遞歸錯誤:超過最大遞歸深度
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x/y
print("what do you want to do?")
print("1.Add:")
print("2.Subtract:")
print("3.Multiply:")
print("4.Divide:")
choice = input("Enter a number 1-4 for your operation: ")
def operation():
if choice == '1':
print(num1,"+",num2,"=", add(num1, num2))
elif choice == '2':
print(num1,"-",num2,"=", subtract(num1, num2))
elif choice == '3':
print(num1,"*",num2,"=", multiply(num1, num2))
elif choice == '4':
print(num1,"/",num2,"=", divide(num1, num2))
else:
print("I SAID A NUMBER 1-4 YOU DUMBASS!")
return(operation(), input())
operation()
num1 = int(input("Enter a number: "))
num2 = int(input("Enter another one: "))
每當我把一個數大於5,它使用else語句,並一遍又一遍地循環print語句了幾秒鐘,然後打印「遞歸錯誤:最大遞歸深度超過我知道通過將return語句放入函數中,函數會自行反覆循環,然後我嘗試添加輸入來提示用戶輸入另一個輸入,但我想這不是正確的語法。有人可以發佈正確的語法對於這個代碼還是有一個更簡潔的方式做這個?謝謝你任何幫助表示讚賞。
擔任你說的話我現在: –
其他: \t \t打印( 「我說了一些1-4 YOU英國白人!」) \t \t輸入( 「再次輸入您的選擇:」) \t \t回報操作() –
更好的解決方案是循環而不是遞歸。 – Copperfield