\ BLACK FRYDAY! /

【Python】for ループの基礎を徹底解説!

  • Python の for ループ処理がよくわからない…

このような悩みにお答えします。

Python のループ処理で最もメジャーなものがfor文です。

基本的にはループ処理のほとんどがforで書けるので、特別な理由がなければfor文を使うことが多いと思います。

ごく基本的な文法ではあるものの、細かい事項まで見ていくと意外と奥が深いです。

本記事を通して、forループをマスターしていきましょう!

for を使った基本的なループ処理の方法

Python でもっともよく使われるループ処理がforを使った方法です。

ここでは、以下の内容をご説明します。

  • 基本的なfor文の書き方
  • 途中でループを抜ける方法
  • 処理をスキップする方法
  • 正常終了後の処理を追加する
  • インデックスカウンタを回す

それぞれ、みていきましょう。

基本的なfor文の書き方

まずはコード例からfor文の書き方を確認しましょう。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    print(area)

上記ではarea_listareaに順次代入されます。

出力結果は以下になります。

Asia
Africa
America
Europe

途中でループを抜ける方法

途中でループを抜けさせる場合には、breakを使います。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    if area == "Africa":
        break
    print(area)

上記の例では、areaAfricaになった場合にループを抜けるようになっています。

Asia

つまり、Africaの前のインデックスであるAsiaだけがprint()された後にループを抜けることになります。

処理をスキップする方法

ある処理だけをスキップする場合にはcontinueを使います。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    if area == "Africa":
        continue
    print(area)

つまり、上記の例ではAfricaだけがスキップ対象となります。

出力結果は以下です。

Asia
America
Europe

正常終了後の処理を追加する

ループが正常に終了した時の処理は、elseで表現できます。

正常終了とは「forループがリストを消化し切って自然に終了した場合」と言い換えることができます。

つまり、breakで強制的にループを抜ける場合にはelseブロックが実行されません。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    print(area)
else:
    print("Successfully for loop.")

実行結果は以下です。

Asia
Africa
America
Europe
Successfully for loop.

continueが存在する場合も考えてみましょう。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    if area == "Africa":
        continue
    print(area)
else:
    print("Successfully for loop.")

continueでは、プログラムは正常に最後まで到達するのでelse以下が実行されます。

Asia
America
Europe
Successfully for loop.

breakは正常終了とは見做されず、else以下は実行されません。

area_list = ["Asia", "Africa", "America", "Europe"]

for area in area_list:
    if area == "Africa":
        break
    print(area)
else:
    print("Successfully for loop.")

実行結果にSuccessfully for loop.の文字列はありません。

Asia

for, range()を使ってインデックスカウンタを回す

インデックスカウンタを回すにはrange()関数を使います。

基本的な方法

最も基本的なインデックスカウンタの回し方は以下です。

for i in range(5):
    print(i)

出力結果は以下になります。

0
1
2
3
4

インデックス開始番号を指定する方法

range()関数の第一引数に「開始番号」を、第二引数に「終了番号」を指定できます。

for i in range(1, 5):
    print(i)

出力結果は以下になります。

1
2
3
4

range()関数では、終了値は含まれません。

そのため、第二引数に5としても4までが表示されることになります。

インデックス生成のステップ間隔を指定する

range()関数の第一引数に「開始番号」を、第二引数に「終了番号」を、第三引数に「ステップ間隔」を指定します。

for i in range(1, 5, 2):
    print(i)

出力結果は以下となります。

1
3

1から4まで数値を、2ずつ値を増やしていくことになります。

リストをループしながらインデックスも取得

enumerate()関数を使うと、リストの要素と同時にインデックスを生成できます。

area_list = ["Asia", "Africa", "America", "Europe"]

for i, area in enumerate(area_list):
    print(i, area)

以下のように、リストの要素とともにインデックス番号が出力されます。

0 Asia
1 Africa
2 America
3 Europe

なお、enumerate()関数の第二引数に数値を渡すと始まりの数値が指定できます。

area_list = ["Asia", "Africa", "America", "Europe"]

for i, area in enumerate(area_list, 1):
    print(i, area)

上記では1始まりにしたので、出力結果は以下になります。

1 Asia
2 Africa
3 America
4 Europe

for ループをマスターして反復処理ができるようになろう!

ここまででforループの書き方をご紹介してきました。

  • for を使った基本的なループ処理の方法
  • for, range()を使ってインデックスカウンタを回す

基本的なループ処理は今回ご紹介したもので十分対応可能です。

本ブログではPythonに関する記事を順次アップしております。ぜひ、他記事の方もご覧になってみてください。

» 参考:CFXLOG – Python に関する記事一覧

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Pythonが得意。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)