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

How to check whether for loop ends completely in python?

这是一个停止循环:

for i in [1,2,3]:
    print(i)
    if i==3:
        break

我如何检查它与此的区别:

for i in [1,2,3]:
    print(i)

这是一个想法:

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

for 循环可以使用一个 else 块来达到这个目的:

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

Python for 循环有一个称为 iff 循环结束的 else 子句。

所以,这意味着符合

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

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

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")