在带有for
语句的break
循环中,我可以在末尾添加else
语句,如果我的for
循环从未命中{{1 }}语句。
我的问题是,break
对此有何影响?
答案 0 :(得分:3)
continue
不会影响else:
子句。如果循环正常终止,即if a StopIteration
is (implicitly) raised by the iterator,则运行else
子句。
continue
语句对特定的迭代不执行任何操作,但是不会阻止迭代器被耗尽。
答案 1 :(得分:2)
否,continue
子句的执行不受else
的影响。
唯一阻止continue
语句(在for循环之后)被触发的是else
语句(或您的代码break
在其之前退出或引发异常)完成return
循环)。
for
将打印for i in range(5):
continue
else:
print("else triggered")
。
请参见the docs:
循环语句可以包含
else triggered
子句;当循环通过用尽列表而终止(使用else
)或条件变为假(使用for
)时,则执行此命令,但是当循环通过while
语句终止时,则不执行[...]
与循环一起使用时,与
break
语句相比,else
子句与else
语句的try
子句有更多共同点: {1}}语句的if
子句在没有异常发生时运行,而循环的try
子句在没有else
发生时运行。
仅提及else
是因为break
子句无法运行,而break
却没有。