- 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_listがareaに順次代入されます。
出力結果は以下になります。
Asia
Africa
America
Europe途中でループを抜ける方法
途中でループを抜けさせる場合には、breakを使います。
area_list = ["Asia", "Africa", "America", "Europe"]
for area in area_list:
if area == "Africa":
break
print(area)上記の例では、areaがAfricaになった場合にループを抜けるようになっています。
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.の文字列はありません。
Asiafor, 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
4range()関数では、終了値は含まれません。
そのため、第二引数に5としても4までが表示されることになります。
インデックス生成のステップ間隔を指定する
range()関数の第一引数に「開始番号」を、第二引数に「終了番号」を、第三引数に「ステップ間隔」を指定します。
for i in range(1, 5, 2):
print(i)出力結果は以下となります。
1
31から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 Europefor ループをマスターして反復処理ができるようになろう!

ここまででforループの書き方をご紹介してきました。
- for を使った基本的なループ処理の方法
- for, range()を使ってインデックスカウンタを回す
基本的なループ処理は今回ご紹介したもので十分対応可能です。
本ブログではPythonに関する記事を順次アップしております。ぜひ、他記事の方もご覧になってみてください。

コメント