Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
今回はPythonのfor文と組み合わせて使うelse節、continue文、そしてbreak文の基本的な使い方・考え方の解説です。これらの組み合わせに慣れて、for文をより便利に、より高度に使えるようになりましょう。
Contents
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節についてはPython公式ドキュメントでは次のように説明されています。
イテレータのすべての要素が処理されたあと、
Python公式ドキュメント:if文else
節がもしあれば実行され、ループ処理が終了します。
使用例として次のコードを見て下さい。
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文についてはPython公式ドキュメントでは次のように説明されています。
Python公式ドキュメント:for文
continue
文が最初のスイート内で実行されると、スイート内にある残りの文の実行をスキップして、次の要素の処理に移るか、これ以上次の要素が無い場合はelse
節の処理に移ります。
これまでのコードに、
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文についてはPython公式ドキュメントでは次のように説明されています。
最初のスイートの中で
Python公式ドキュメント:for文break
文が実行されると、else
節のスイートを実行することなくループを終了します
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の動画講座がわかりやすくおすすめです。次のような人気講座があります。