我用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()
如果for
为endLoop
,我想中断True
循环。但是循环在执行if
块后就中断了-
if uResult == word.upper():
print('Congrats!')
loop = False
问题出在哪里,我该如何解决?希望我能解释我的问题。预先感谢。
loop
在第一个单词之后保持False
,这就是为什么。您应该在for
中初始化它:
for word in words:
loop = True
while loop:
我不会说循环在您指出的地方中断。在loop = False
之后,您可以正确结束while
循环并移至words
列表中的下一个条目。但是,此时loop
仍然为false,因此您永远不会进入while循环,因此看起来循环好像正在中断,而实际上您确实在正确地遍历了单词列表时,只是没有进入for循环。 >
而不是类似:
for word in words: loop = True while loop: <Processing code goes here>
因此,对于for循环,您要确保while循环至少输入一次。