Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのループで使えるelse句とは?基本からbreakとの挙動まで徹底解説

Pythonには、他のプログラミング言語には見られない独特な機能があります。それがループと組み合わせて使える「else句」です。C/C++やJavaなどの言語では、ループにelse句を付けることはできませんが、Pythonではfor文やwhile文にelseブロックを記述することが可能です。

ループのelse句の基本的な動作

通常、ループの本体は繰り返し条件によって制御され、条件が満たされなくなるとループを抜けて次の処理へ移ります。

Pythonでは、すべての反復処理が完了した後、ループを抜ける直前にelseブロックが実行されるという特徴があります。つまり、ループが最後まで正常に終了した場合のみ、else句の中のコードが実行されるのです。

以下の例を見てみましょう。

コード例

for x in range(5):
    print('inside body of loop', x)
else:
    print('else block of loop')

print('outside loop')

実行結果

inside body of loop 0
inside body of loop 1
inside body of loop 2
inside body of loop 3
inside body of loop 4
else block of loop
outside loop

実行結果を見ると、ループ本体が5回実行された後、ループを抜ける前にelseブロックが実行されていることがわかります。この順序がPythonのループにおけるelse句の重要なポイントです。

break文がある場合の注意点

else句の理解において最も重要なのは、break文との関係です。ループ内でbreak文が実行されると、elseブロックはスキップされます。

for x in range(5):
    if x == 3:
        print('break at', x)
        break
    print('inside body of loop', x)
else:
    print('else block of loop')

print('outside loop')

この場合の出力は以下のようになります。

inside body of loop 0
inside body of loop 1
inside body of loop 2
break at 3
outside loop

breakによってループが途中で中断されたため、「else block of loop」は表示されていません。「ループが最後まで完走したときだけelseを実行する」という挙動を覚えておきましょう。

else句の実用的な活用例

この機能は、検索処理などで特に役立ちます。例えば、リストの中に特定の値が存在するかどうかを調べる際、見つかったらbreakで抜け、見つからなかったらelseで処理するという書き方ができます。

numbers = [10, 20, 30, 40]
target = 25

for n in numbers:
    if n == target:
        print(f'{target} が見つかりました')
        break
else:
    print(f'{target} は見つかりませんでした')

フラグ変数を使わずにすっきりと書けるため、可読性の高いコードになります。

まとめ

  • Pythonではfor文・while文にelse句を付けられる(C/C++やJavaにはない独自機能)
  • elseブロックはループが最後まで完了した後に実行される
  • break文でループを抜けた場合はelseブロックはスキップされる
  • 検索処理などでフラグ変数なしに簡潔なコードを書くのに便利

一見変わった構文ですが、breakとの組み合わせを理解すれば、条件分岐の多い処理をより読みやすく整理できる強力なツールになります。ぜひ実際のコードで試してみてください。

  1. Pythonのmatplotlibでバックエンドを設定・変更する方法をわかりやすく解説

    matplotlibでは、matplotlib.rcParams[backend]を使用することで、バックエンドの値を上書き(変更)できます。これにより、描画に使用されるGUIツールキットをプログラム内で柔軟に切り替えることが可能です。手順get_backend()メソッドを使って、現在設定されているバックエンド名(デフォルト値)を取得して表示します。matplotlib.rcParams[backend]に新しいバックエンド名を代入し、バックエンドを上書きします。再度get_backend()メソッドを呼び出し、更新後のバックエンド名が反映されていることを確認します。サンプルコードimpor

  2. TensorFlowとPythonを使ってモデルをトレーニングする方法

    TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。実行環境について本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。モデルのトレーニ