Python 繰り返し処理でのelse文

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文は繰り返し処理ですべての処理が終わった時、実行されます。