如何在python中检查循环是否完全结束?

Jon*_*ona 9 python loops for-loop break

这是一个停止循环:

for i in [1,2,3]:
    print(i)
    if i==3:
        break
Run Code Online (Sandbox Code Playgroud)

我怎样才能检查它与它的区别:

for i in [1,2,3]:
    print(i)
Run Code Online (Sandbox Code Playgroud)

这是一个想法:

IsBroken=False
for i in [1,2,3]:
    print(i)
    if i==3:
        IsBroken=True
        break
if IsBroken==True:
    print("for loop was broken")
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 21

for循环可以采用一个else可以达到此目的的块:

for i in [1,2,3]:
    print(i)
    if i==3:
        break
else:
    print("for loop was not broken")
Run Code Online (Sandbox Code Playgroud)


Abh*_*jit 7

Pythonfor循环有一个 else 子句,当循环结束时调用它。

所以,这意味着符合

for i in [1,2,3]:
    print(i)
    if i==3:
        break
else:
    print("Loop Ended without break")
Run Code Online (Sandbox Code Playgroud)

相反,如果您需要处理这两种情况,使用异常进行序列控制也是一个可行的选择

try:
    for i in [1,2,3]:
        print(i)
        if i==3:
            raise StopIteration
except StopIteration:
    print ("Loop was broken")
else:
    print ("Loop was not broken")
Run Code Online (Sandbox Code Playgroud)