我最近开始用Python编程。现在我正在进行数字猜谜游戏。我有一个了解存储随机数如何工作的问题。我在这里看了一下,找到了一些答案,但无法使它工作。代码工作正常,但我的答案(随机数)总是不同的,所以猜测它是不可能的。 如果有人可以帮助我或改进我的代码,我会很高兴。 以下是我所拥有的代码的一部分:
def game(self):
import random
answer = random.randint(0, 1000)
guess = int(input("Your tip is:"))
while True:
if guess < answer:
print ("Your tip is lower, than the answer! Try again.")
self.game()
elif guess > answer:
print ("Your tip is bigger than the answer! Try again.")
self.game()
elif guess == answer:
print ("Good job! You have found the answer!")
self.replay()
答案 0 :(得分:2)
那是因为你在每个if语句中调用self.game()
,这会将执行流程带回函数的开头,并且每次都使用answer = random.randint(0, 1000)
生成一个新的数字。
所以只需删除self.game()
并让函数到达结尾:
import random
def game(self):
answer = random.randint(0, 1000)
while True:
guess = int(input("Your tip is:"))
if guess < answer:
print ("Your tip is lower, than the answer! Try again.")
elif guess > answer:
print ("Your tip is bigger than the answer! Try again.")
elif guess == answer:
print ("Good job! You have found the answer!")
self.replay()
break
编辑1:
您还应该移动用户在while
循环内输入猜测的行,以便用户可以猜测,直到他得到正确的答案。我还添加了break
语句,以便在获得正确答案而不是仅使用print语句时退出循环。您可以详细了解break
here(上面的答案代码已更新)
编辑2:
自从您熟悉Python之后的另一个小细节:您应该将所有import语句放在python模块的顶部,它应该遵循python编码指南,以使您的代码更加清晰。您可以阅读更多here