Pythonでelse文といったら、条件分岐で用いると思いがちですが、繰り返し処理でもelse文は用いられます。
本記事では、繰り返し処理で用いるelse文を紹介します。
Pythonでの特有の使い方になります。
else文の使い方
繰り返し処理で用いるelse文は、繰り返し処理ですべての処理が終わった時に実行されます。
ですので、breakで繰り返し処理を抜け出した場合は、elseの内容は実行されません。
繰り返し処理でbreakした場合としなかった場合とで処理を分けたいときに用いられます。
for i in range(10):
if i == 3:
print("break")
break
else:
print("not break")
繰り返し処理でelse文を使用しない方法
bool型の変数を用いることで同様なことができます。
flag = False
for i in range(10):
if i == 3:
flag = True
break
if flag:
print("break")
else:
print("not break")
実例
ボゴソートアルゴリズム(ランダムソート)
import random
def bogo(data):
length=len(data)
while True:
rdata=random.sample(data,length)
for i in range(length-1):
if rdata[i] > rdata[i+1]:
break
else:
return rdata
ボゴソートのPythonプログラムです。
breakした場合、再度、繰り返し処理をしています。
最後まで、for文の処理が終わった場合、データを返します。
ボゴソートについてはこちらの記事を参照してください。
まとめ
else文は繰り返し処理ですべての処理が終わった時、実行されます。