2016-07-14 86 views
3

這是一個停止的循環:如何檢查for循環是否完全在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") 
+0

我認爲你的想法是最好的。 python中的else子句只在for循環沒有中斷時才運行。因此,檢測休息可能是最好的,因爲你建議。如果沒有更好的答案,請繼續,並把它放在你自己的答案中。 – rkh

回答

10

for迴路可以採取else可用於此目的的塊:

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

Python for循環有一個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")