Python 而循环不';t检查列表中是否存在单词

Python 而循环不';t检查列表中是否存在单词,python,python-3.x,python-3.7,Python,Python 3.x,Python 3.7,我是新来的,如果我没有把事情安排好,请原谅:) 我试着从一个基本的游戏开始,在这个游戏中你必须输入一个4个字母长的单词,并且一切都很好,直到我引入了一个新的语句来检查这个单词是否已经被使用并添加到一个新的列表中。从现在起,代码将单词保存到一个列表中运行1次,然后将其删除。 我试图把它变成一个函数,但函数给了我错误或无尽的循环 while True: used_words: List[str] = [] word: str = raw_input("Type 4 letter wo

我是新来的,如果我没有把事情安排好,请原谅:)

我试着从一个基本的游戏开始,在这个游戏中你必须输入一个4个字母长的单词,并且一切都很好,直到我引入了一个新的语句来检查这个单词是否已经被使用并添加到一个新的列表中。从现在起,代码将单词保存到一个列表中运行1次,然后将其删除。 我试图把它变成一个函数,但函数给了我错误或无尽的循环

while True:
    used_words: List[str] = []
    word: str = raw_input("Type 4 letter word: ")
    if len(word) == 4 and word not in used_words:
        used_words.append(word)
        print("good job, try another word")
    elif word in used_words:
        print("word already exists")
    elif len(word) > 4 or len(word) < 4:
        print("word is not 4 letters long")
    else:
        continue
为True时:
用词:List[str]=[]
单词:str=原始输入(“键入4个字母的单词:”)
如果len(word)==4,且单词未在单词中使用:
已用单词。追加(单词)
打印(“干得好,换个词试试”)
已用单词中的elif单词:
打印(“word已存在”)
elif len(word)>4或len(word)<4:
打印(“单词长度不超过4个字母”)
其他:
持续

我的期望是运行代码,将每个有效单词保存在一个列表中,并检查是否存在于该列表中。提前谢谢

重新创建
使用的单词
每次迭代,并用空列表初始化,将其移出循环:

used_words = []
while True:
    word = input("Type 4 letter word: ")
    if len(word) == 4 and word not in used_words:
        used_words.append(word)
        print("good job, try another word")
    elif word in used_words:
        print("word already exists")
    elif len(word) != 4:
        print("word is not 4 letters long")

欢迎来到SO。有关代码格式设置提示,请参阅。在python中,保留缩进非常重要。在粘贴代码并尝试手动修复时,引入了缩进错误。(有人刚刚为您修复了它,但这也可能很危险,所以最好确保您自己正确操作。)
python3中的原始输入
if
和前两个
elif
覆盖了所有可能的情况(A和B,没有A,没有B),因此您永远不会输入最后一个
else
。因此,循环将运行forverbe-aware,因为Python不再使用raw_input(),所以按照@Ingvar的方法,将代码改为使用input()answer@glibdud,谢谢您的通知,我将阅读帮助页面以避免将来出现此错误。非常感谢您的帮助!如果你不介意我问,也许你可以告诉我如何将其实现到函数中?@Eurostyle如果有帮助,请接受这个答案:)再次感谢你,我认为我的错误是空列表的位置不正确。我很高兴我来对了地方。希望有一天能像你一样,报答你的恩惠!:)