Pythonのループのelse節の使い方と目的

この記事では、Pythonにおける「ループのelse節」について詳しく解説します。else節が何であり、どのような場合に使うのかを明確にするため、具体的なコード例とその解説、さらには応用例も含めてご紹介します。

目次

ループのelse節とは

Pythonでは、`for`ループや`while`ループに続けて`else`節を使用することができます。この`else`節はループが正常に終了した場合、つまりループが中断されずに完了した場合にのみ実行されます。

基本的な使い方

ループのelse節の基本的な使い方を見てみましょう。

for i in range(3):
    print(f"ループ中: {i}")
else:
    print("ループが正常に終了しました。")

この例では、`for`ループが正常に終了すると、”ループが正常に終了しました。”と出力されます。

中断された場合の動作

ループが`break`で中断された場合、else節は実行されません。

for i in range(3):
    print(f"ループ中: {i}")
    if i == 1:
        break
else:
    print("この行は表示されません。")

ループのelse節の目的と有用性

ループのelse節は、多くの人にとっては少々直感に反するかもしれませんが、特定のケースで非常に有用です。

探索問題での利用

例えば、ある条件を満たす要素がリスト内に存在するかどうかを探索する際に有用です。

my_list = [1, 2, 3, 4, 5]
for i in my_list:
    if i == 3:
        print(f"{i} を見つけました!")
        break
else:
    print("リストに該当する数字はありません。")

応用例

素数判定

素数を判定する際にもelse節は有用です。

n = 29  # 判定する数
for i in range(2, int(n ** 0.5) + 1):
    if n % i == 0:
        print(f"{n}は素数ではありません。")
        break
else:
    print(f"{n}は素数です。")

ファイル探索

特定の文字列がテキストファイルに含まれているかを調べる場合。

target_string = "Python"
with open("example.txt", "r") as f:
    for line in f:
        if target_string in line:
            print(f"見つけました:{line}")
            break
    else:
        print("該当する文字列はありません。")

特定条件の組み合わせ探索

特定の条件を満たす数値の組み合わせを見つける場合。

for x in range(5):
    for y in range(5):
        if x + y == 5:
            print(f"条件を満たす組み合わせは {x}, {y} です。")
            break
    else:
        continue
    break
else:
    print("条件を満たす組み合わせはありません。")

まとめ

Pythonのループにおけるelse節は、特定のシナリオで非常に便利な機能です。else節はループが中断されずに完了した場合にのみ実行されるため、特定の条件下での処理を明示的に表現することができます。

コメント

コメントする

目次