存储随机整数

时间:2017-11-23 17:17:22

标签: python random numbers

我最近开始用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()

1 个答案:

答案 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