Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

【Python入門】for文+else節/break文/continue文の基本の解説

Pythonのfor文で使うelse節、continue文、そしてbreak文の使い方と考え方の基本を解説

今回はPythonのfor文と組み合わせて使うelse節、continue文、そしてbreak文の基本的な使い方・考え方の解説です。これらの組み合わせに慣れて、for文をより便利に、より高度に使えるようになりましょう。

単純なfor文

company_list: list = ["Amazon", "Apple", "Google", "Microsoft", "Meta"]

for i in company_list:
    print(i)

for文のinは、その後にイテラブルオブジェクトをとります。今回は、イテラブルオブジェクトの1種であるリスト型オブジェクトとして、company_listを設定しています。

このイテラブルオブジェクトとイテレータオブジェクトについては次の解説記事をご覧ください。

さて、この実行結果は、

Amazon
Apple
Google
Microsoft
Meta

これについて特に問題はないと思います。では次に、for文とelse節を組み合わせてみましょう。

for文 + else節

公式説明

for文と組み合わせて使うelse節についてはPython公式ドキュメントでは次のように説明されています。

イテレータのすべての要素が処理されたあと、 else 節がもしあれば実行され、ループ処理が終了します。

Python公式ドキュメント:if文

使用例

使用例として次のコードを見て下さい。

company_list: list = ["Amazon", "Apple", "Google", "Microsoft", "Meta"]

for i in company_list:
    print(i)

else:
    print("Sony")

結果は、

Amazon
Apple
Google
Microsoft
Meta
Sony  # ←New!

まずcompany_listのすべての要素について処理が完了していることを確かめてください。最後のMetaまで出力されています。

そして、公式説明の、

イテレータのすべての要素が処理されたあと、 else 節がもしあれば実行され、ループ処理が終了します。

この説明どおり、今回はelse節があるためそれが実行されて、Sonyが表示されています。そしてループ処理が終了です。

では、次にcontinue文を使ってみましょう。

for文 + continue文

公式説明

for文と組み合わせて使うcontinue文についてはPython公式ドキュメントでは次のように説明されています。

continue 文が最初のスイート内で実行されると、スイート内にある残りの文の実行をスキップして、次の要素の処理に移るか、これ以上次の要素が無い場合は else 節の処理に移ります。

Python公式ドキュメント:for文

使用例

これまでのコードに、

    if i == "Google":
        continue

を加えて次のようにしました。

company_list: list = ["Amazon", "Apple", "Google", "Microsoft", "Meta"]

for i in company_list:

    if i == "Google":
        continue

    print(i)
    
else:
    print("Sony")

この結果は、

Amazon
Apple
Microsoft
Meta
Sony

となります。

表示された結果からGoogleが抜けていることに注目してください。この点、公式ドキュメントを再び確認してみましょう。

continue 文が最初のスイート内で実行されると、スイート内にある残りの文の実行をスキップして、次の要素の処理に移るか、これ以上次の要素が無い場合は else 節の処理に移ります。

まず、iが文字列Googleになるとcontinue文が実行されます。そして上の公式説明のとおりにprint()の実行がスキップされ(無視され)ます。よって文字列Googleは表示されません。

その後、次の要素(今回はMicrosoft)、続いてその次の要素(Meta)についての処理へ移行します。

そしてelse節が最後にあるのでそれも実行されて(上のelse節の解説参照)、Sonyも表示されます。

for文 + break文

公式説明

for文と組み合わせて使うbreak文についてはPython公式ドキュメントでは次のように説明されています。

最初のスイートの中で break 文が実行されると、 else 節のスイートを実行することなくループを終了します

Python公式ドキュメント:for文

使用例

continue文で使ったコードに、

    if i == "Microsoft":
        break

を加えて次のようにしました。

company_list: list = ["Amazon", "Apple", "Google", "Microsoft", "Meta"]

for i in company_list:

    if i == "Google":
        continue

    print(i)
    
    if i == "Microsoft":
        break

else:
    print("Sony")

結果は、

Amazon
Apple
Microsof

この処理の流れを説明しますと、

iに文字列Amazonが代入
↓
print("Amazon")
↓
iに文字列Appleが代入
↓
print("Apple")
↓
続いてiに文字列Googleが代入。しかしここでif文の、i == "Google"という条件が真となるためcontinue文が実行される。
↓
その結果、print("Google")という処理はスキップされ、次の要素"Microsoft"へ処理が移る
↓
続いてiに文字列Microsoftが代入されるが、ここでもif文の i == "Microsoft"という条件が真となるためbreak文が実行される
↓
その結果else節を実行することなく、ループ処理が終了

とこのような処理の流れとなります。

Python独学にはUdemyの動画講座がわかりやすくおすすめです。次のような人気講座があります。

愛を分かち合いましょう