2016-07-14 5 views
3

これは、ループのために中止された:これはアイデアですforループが完全にPythonで終了するかどうかを確認するには?

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

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

どのように私はこれでその違いを確認することができます

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") 
関連する問題