[英]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
。 有什么建議? 歡迎深入解釋,因為我想盡可能多地理解。
我將嘗試在您的代碼中解決一些問題,然后提出替代方案:
for guess in hidden
: 這有兩個問題:首先,您要覆蓋剛剛用於從用戶那里獲取輸入的guess
變量。 其次,您試圖遍歷hidden
,這是您從rand
獲得的數字。 數字不能迭代,只有“可迭代對象”(列表、集合、字典等......)。
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.