循环在python中的错误位置中断

循环在python中的错误位置中断,python,Python,我用python编写了这段代码。它是大型代码文件的一部分。我在下面的代码之后解释了我的问题 def main(): maxAttempt = 5 endLoop = False isFailed = False words = ['a', 'apple'] loop = True for word in words: while loop != False: print(word) u

我用python编写了这段代码。它是大型代码文件的一部分。我在下面的代码之后解释了我的问题

def main():
    maxAttempt = 5
    endLoop = False
    isFailed = False
    words = ['a', 'apple']
    loop = True
    for word in words:
        while loop != False:
            print(word)
            uResult = input(
                f'Enter the word: ').upper()
            if uResult == word.upper():
                print('Congrats!')
                loop = False
                # The loop is breaking here
            else:
                maxAttempt -= 1
                if maxAttempt == 0:
                    isFailed = True
                    break
                print('try again')
        if endLoop:
            break

    if not isFailed:
        print('Congrats! You are safe now.')


if __name__ == "__main__":
    main()
如果
endLoop
True
,我想中断
for
循环。但是循环在执行
if
块之后立即中断-

if uResult == word.upper():
                print('Congrats!')
                loop = False
问题在哪里?我该如何解决?
希望我能解释我的问题。提前感谢。

循环
在第一个单词后保持
False
,这就是原因。您应该在的
中初始化它:

for word in words:
    loop = True
    while loop:

我不会说循环在你指出的地方破裂。在
loop=False
之后,您可以正确地结束
while
循环,并进入
单词列表中的下一个条目。但是,此时
loop
仍然为false,因此您永远不会进入while循环,因此当您真正正确地迭代单词列表时,似乎循环正在中断,只是没有进入for循环

取而代之的是:

for word in words:
    loop = True
    while loop:
         <Processing code goes here>
对于单词中的单词:
循环=真
while循环:

因此,对于for循环的每次迭代,都要确保至少输入一次while循环

没有问题,您否定while循环条件,然后在循环的迭代中没有任何其他内容
endLoop
指的是我编辑的问题的外部循环。现在请看一看。我的写作中有一个错误。你是故意让
循环
结束循环
?特别是,您从未将后者设置为
True