![](/img/trans.png)
[英]I keep getting this error:RecursionError: maximum recursion depth exceeded while calling a Python object
[英]Why do I keep getting the maximum recursion depth exceeded error?
我正在為數字猜謎游戲編寫代碼,必須遞歸出售。 但是當我執行它時,我得到這個錯誤:超過最大遞歸深度。 這是為什么?
這是我的代碼:
import random
n = random.randrange(0,100)
guess = int(input("Introduce a number: "))
def game(guess):
if guess == n:
print("Your guess is correct.")
elif guess > n:
print("Your guess is too high")
game(guess)
elif guess < n:
print("Your guess is too low")
game(guess)
game(guess)
原因是,除非第一次調用guess
等於n
,否則您將具有無限遞歸,因為您以相同的guess
值調用game
。 您沒有提供任何方法來停止遞歸。
您的游戲功能不需要任何參數。 您需要使用else
代替最后一個elif
並且guess = int(input("Introduce a number: "))
步驟應該在您的游戲函數中(已測試):
import random
n = random.randrange(0,100)
def game():
guess = int(input("Introduce a number: "))
if guess == n:
print("Your guess is correct.")
elif guess > n:
print("Your guess is too high")
game()
else:
print("Your guess is too low")
game()
game()
滿足guess > n
, guess < n
條件時,由於無限循環而導致出現maximum recursion depth exceeded
。 要知道進一步請參考這個問題 。
下面的代碼應按預期工作。
import random,sys
n = random.randrange(0,100)
def game(guess):
if guess == n:
print("Your guess is correct.")
sys.exit()
elif guess > n:
print("Your guess is too high")
elif guess < n:
print("Your guess is too low")
while True:
guess = int(input("Introduce a number: "))
game(guess)
random.randint()
函數: n = random.randint(0, 100)
。 while
循環。 guess = int(input("Introduce a number: "))
。 import random
n = random.randint(0, 100)
guess = int(input("Introduce a number: "))
def game(guess):
while guess != n:
if guess > n:
print("Your guess is too high")
elif guess < n:
print("Your guess is too low")
guess = int(input("Introduce a number: "))
else:
print("Your guess is correct.")
game(guess)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.