TypeError:'int'对象不是可迭代的-Noob编码器

时间:2019-07-09 22:08:19

标签: python-3.x

我在玩循环之类的游戏,同时尝试自己学习python。我找到了一个古老的练习来制作猜谜游戏,所以我正在尝试。

hidden = random.randrange(1, 100)
print(hidden)

guess = int(input("Please enter your guess: "))

for guess in hidden:
    if guess == hidden:
        print("That\'s it!\n\n Congrats !") + quit()
    elif guess < hidden:
        print("Too low :(")
    else:
        print("Too high!")

但是我一直在收到TypeError:'int'对象是不可迭代的。有什么建议么?我见过类似的问题,但没有答案,我很理解。我希望能尽可能多地理解,因此欢迎进行深入的解释。

1 个答案:

答案 0 :(得分:1)

我将尝试在您的代码中介绍一些问题,然后提出替代方案:

1. for guess in hidden

这有两个问题:首先,您要覆盖guess变量,该变量只是用来获取用户输入的。其次,您正在尝试遍历hidden的数字rand。数字不能迭代,只能迭代“可迭代”(列表,集合,字典等)。

2。 print("That\'s it!\n\n Congrats !") + quit()

我在这里猜测您是在指的是+运算符,例如C中的;。一种连接命令的方式。好吧,它在Python中不起作用。每个命令都在自己的行中。

最后,您可能想要类似的东西:

hidden = random.randrange(1, 100)
print(hidden)

guess = int(input("Please enter your guess: "))

while guess != hidden:
    if guess < hidden:
        print("Too low :(")
    else:
        print("Too high!")
    guess = int(input("Please try again: "))

print("That\'s it!\n\n Congrats !")

在这里,我们正在进行用户的首次猜测。然后,while 等于hidden号,我们将在提示用户的同时继续询问用户其他输入。然后,当他最终按下数字时,循环将退出(因为现在条件失败了),并且将显示成功消息,并且程序将终止。