我正在通过制作一个简单的猜谜游戏来练习Python。看来效果很好,但是,即使Play again? (y/n):
的答案是n
,如果用户播放了不止一次,程序也不会退出。我认为这与递归有关,但我不确定如何解决它。
有指针吗?
(print(key)
只是为了快速赢得比赛用于调试。)
import random
def guess():
while True:
get = input("Enter a number between 1 and 9: ")
try:
num = int(get)
break
except ValueError:
print("Please input an integer.")
return num
def run_game():
count = 0
key = random.randint(1, 9)
replay = None
print(key)
while True:
num = guess()
count += 1
if num == key:
print("Correct!")
print("Total guesses:", count)
replay = input("Play again? (y/n): ")
if replay == 'y':
run_game()
elif replay == 'n':
print("Thanks for playing!")
return
elif num > key:
print("Too high!")
else:
print("Too low!")
run_game()
答案 0 :(得分:0)
您将再次递归运行该函数,但是您不会在调用后退出,因此当用户从第二轮退出时,他会回到第一轮。
在致电return
之后,您缺少的是run_game
。
例如。
if replay == 'y':
run_game()
return