pythonには多重ループを抜ける簡単な方法が用意されてない。
フラグを用意すればいいけどあんまりきれいじゃない
flag = False
for i in range(100):
for j in range(100):
if i > j > 70:
flag = True
break
print i, j
if flag:
break
そんなforループは構造から見直せってことなのだと思うけど。どうしてもbreakで多重ループを抜けてほしいときがある。
そんな時は
- for-else句を使う
- try-except構文を使う
- gotoモジュールを使う
とかがあるっぽい。
#for-else句を使う
for i in range(100):
for j in range(100):
if i > j > 70:
break
print i, j
else:
continue
break
あんまきれいじゃない
#try-except構文を使う
try:
for i in range(100):
for j in range(100):
if i > j > 70:
raise Exception
print i, j
except Exception:
pass
本来の使い方と違うしあんま好きになれないな~
#gotoをつかう
goto for Python
from goto import goto, label
for i in range(100):
for j in range(100):
if i > j > 70:
goto .END
print i, j
label .END
わかりやすいけど外部モジュールのインストールが必要
どれもいまいちだしやっぱ関数化しろってことですね。
はい。