[英]Python Loop isnt working properly
我正在嘗試創建一個游戲,在該游戲中用戶輸入字母,直到他們猜出這個秘密單詞為止,但是由於某些原因,我的列表無法正確更新。 可以說這個秘密單詞是TOYS,如果用戶猜到了T,它會顯示T _ _ _,然后用戶輸入S,但該單詞仍然顯示T_ _ _,並將S添加到letterInWord列表中,並告訴用戶S不是一句話。 循環在while循環中運行,但是問題在循環內部發生。
letter = input("Enter letter: ")
if letter not in enteredLetters:
find = sentence.find(letter)
if find == -1:
print("Letter is not in word")
else:
newSentence = ""
lettersInWord.append(letter)
for letter in sentence:
if letter in lettersInWord:
newSentence = newSentence + letter
else:
newSentence = newSentence + "_ "
elif letter in enteredLetters:
print ("The letter has been used")
print (newSentence)
enteredLetters.append(letter)
您正在循環中重新綁定letter
:
for letter in sentence:
if letter in lettersInWord:
letter
現在是sentence
的字符, 而不是原始的用戶輸入。 在該循環之后,它仍將綁定到sentence
的最后一個字符,因此為'S'
。
在代碼末尾, 此字符(句子中的最后一個)被添加到enteredLetters
:
enteredLetters.append(letter)
所以enteredLetters
現在包含['S']
而不是 ['T']
。
您需要為循環變量選擇一個不同的名稱。 char
是一個常用名稱:
for char in sentence:
if char in lettersInWord:
newSentence = newSentence + char
else:
newSentence = newSentence + "_ "
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.