簡體   English   中英

Python循環無法正常工作

[英]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.

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