我正在尝试制作一个数字猜谜游戏,当您猜对数字时,它会告诉您猜了多少次。
我已经尝试了几个循环,但无法弄清楚如何让我的“猜测”增加。
import random
rand_num = random.randrange(1,201)
def guess_game():
guess = int(input("Please enter your guess: "))
guesses = 1
if guess == rand_num:
print("Hit!\nIt took you " + str(guesses) + " guesses!")
elif guess < rand_num:
print("Your guess is too low.")
guesses = guesses + 1
guess_game()
else:
print("Your guess is too high")
guesses = guesses + 1
guess_game()
guess_game()
例如,期望的输出应该是这样的:
"Hit! It took you 5 guesses"
但无论尝试了多少次,它都只会说 1 次猜测。
请您参考如下方法:
您的代码不起作用,因为您在每次猜测后不断调用 guess_game(),有效地在每次猜测后开始新游戏。
当用户最终猜对时,总是在那个新游戏中猜测 1 次之后,然后所有游戏立即结束,但在任何这些游戏中,代码永远不会到达打印数字的那一行.
有很多不同的方法来解决这个问题,但这里的主要问题是(像许多新程序员一样)你没有意识到调用一个函数不只是让程序跳转到你的新代码,它创建了一个完整的程序工作的新空间(对函数的每次调用都有自己的“范围”)并在函数完成后从该空间返回,在大多数情况下之前的范围不变。
