Python循环工作不正常

2024-09-29 09:36:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个游戏,用户输入字母,直到他们猜出秘密单词,但由于某些原因,我的列表没有正确更新。 假设这个秘密单词是TOYS,如果用户猜到T,它会显示T\uuuuu,然后用户输入S,但这个单词仍然显示T\uuuuu,将S添加到字母sinword列表中,并告诉用户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)

Tags: 用户in列表if字母notfind单词
1条回答
网友
1楼 · 发布于 2024-09-29 09:36:07

您正在循环中重新绑定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 + "_ "        

相关问题 更多 >