循环在python中的错误位置中断
我用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
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
。