簡體   English   中英

為什么我收到 TypeError: 'int' object is not iterable?

[英]Why am I getting TypeError: 'int' object is not iterable?

在嘗試自己學習 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' object is not iterable 有什么建議? 歡迎深入解釋,因為我想盡可能多地理解。

我將嘗試在您的代碼中解決一些問題,然后提出替代方案:

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數字,但我們會在給他提示的同時不斷詢問用戶另一個輸入。 然后,當他最終命中數字時,循環將退出(因為現在條件失敗)並且我們將打印成功消息並且程序將終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM