我试图创建一个游戏,用户输入字母,直到他们猜出秘密单词,但由于某些原因,我的列表没有正确更新。 假设这个秘密单词是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)
您正在循环中重新绑定
letter
:letter
现在是sentence
中的字符,不是原始用户输入。在那个循环之后,它仍然会被绑定到sentence
中的最后一个字符,所以'S'
。你知道吗在代码末尾,添加到
enteredLetters
的是这个字符(句子中的最后一个):所以
enteredLetters
现在包含['S']
,不是['T']
。你知道吗您需要为循环变量选择一个不同的名称;
char
是一个常用名称:相关问题 更多 >
编程相关推荐