Python「for文」の使い方と書き方・サンプルコード|繰り返し処理・途中終了など応用例も解説

Pythonにおける「for文」は、繰り返し処理(ループ)を行うための基本構文です。このループ処理は、プログラムの自動化やデータ解析、機械学習など、あらゆるシステム開発の基盤となるもので、リストやタプル、文字列などのデータを順番に処理する際に活用されます。
本記事では、Pythonのfor文の基本から応用までをサンプルコードを交えて体系的に解説。プログラミング初心者の方から、Pythonを学び始めたエンジニアまで、幅広く役立つ内容です。
Contents
Pythonの「for文」とは
Pythonの「for文」とは、シーケンシャルデータ(リスト、タプル、文字列など)やイテレータ(ジェネレータ、辞書など)を対象に、各要素を順番に処理するための構文です。
一般的なプログラミング言語では、C言語やJavaのようにカウンタ変数を用いたforループが主流ですが、Pythonではfor-in構文を用いることで、直感的かつシンプルに反復処理を記述できます。
【for文でできること】
- リストやタプルの要素を順番に処理する
- 文字列の各文字を順番に処理する
- 辞書のキーや値を取得する
- range() 関数を用いて一定回数の繰り返し処理を行う
- break を使ってループを途中で終了する
- continue を使って特定の条件でスキップする
- else を使ってループが正常終了した後の処理を行う
- reversed() を使って要素を逆順に処理する
- zip() を使って複数のリストの要素を同時に処理する
- enumerate() を使ってリストのインデックスと要素を取得する
- スライスを使って一部の要素のみを処理する
Pythonのfor文を活用すれば、さまざまなデータ構造を効率よく処理できます。次項からは、for文の基本構文とその使い方について解説します。
Pythonの「for文」の使い方・書き方

Pythonのfor文の基本構文は次の通りです。
for 変数 in イテラブルオブジェクト:
# 繰り返し処理
- 変数:各ループで取得する要素を格納する変数
- イテラブルオブジェクト:繰り返し処理が可能なデータ(リスト、タプル、文字列、辞書など)
- 繰り返し処理:ループ内で実行される処理
Pythonのfor文は、特定の回数を繰り返すのではなく、指定したデータの要素数だけループするという特徴があります。これにより、明示的にカウンタ変数を用意する必要がなく、コードを簡潔に記述できます。
【for文を使ったサンプルコード】
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(f"I like {fruit}")
【出力】
I like apple
I like banana
I like cherry
【処理の説明】
- fruitsというリストに、3つの文字列("apple", "banana", "cherry")が格納されている
- for fruit in fruits: によって、リストの各要素が順番にfruit変数へ代入
- print(f"I like {fruit}") が実行され、リストの要素ごとに出力
- ループはfruitsの要素が尽きるまで(つまり3回)繰り返される
range ()関数を使って繰り返し処理させる
Pythonでは、数値の範囲を指定してループを実行したい場合に、range()関数を使用します。
for i in range(開始値, 終了値, ステップ):
# 繰り返し処理
- 開始値(デフォルト:0):ループの開始位置
- 終了値(必須):ループの終了位置(この値は含まれない)
- ステップ(デフォルト:1):ループの増加量
【range関数を使ったサンプルコード】
for i in range(1, 6):
print(f"Step {i}")
【出力】
Step 1
Step 2
Step 3
Step 4
Step 5
【処理の説明】
- range(1, 6) によって、1から5までの数値が生成される(終了値6は含まれない)
- for i in range(1, 6): により、変数iに1から5までの値が順番に代入
- print(f"Step {i}") が実行され、それぞれのiの値とともに出力
- ループは5回実行され、すべての値を出力した後に終了する
break:for文を使って途中終了させる
break文を使用すると、ループの途中で処理を強制終了できます。
【break: for文を使ったサンプルコード】
for num in range(1, 10):
if num == 5:
print("Breaking loop")
break
print(num)
【出力】
1
2
3
4
Breaking loop
【処理の説明】
- range(1, 10) により、1から9までの数値が生成される
- if num == 5: の条件が満たされた場合、breakが実行され、ループが強制終了する
- 1から4までは通常通り出力され、5に到達するとループが終了する
continueを使って処理を飛ばす
continueを使用すると、条件を満たした場合にその回の処理をスキップし、次のループに移ります。
【continueを使ったサンプルコード】
for num in range(1, 6):
if num == 3:
print("Skipping 3")
continue
print(num)
【出力】
1
2
Skipping 3
4
5
【処理の説明】
- range(1, 6) によって1から5までの数値が生成される
- if num == 3: の条件が満たされた場合、continueが実行され、その回の処理がスキップされる
- 3のときは出力されず、「Skipping 3」と表示され、次のループへ進む
elseを使って繰り返し終了後の処理を指定する
forループにはelseブロックを追加でき、ループが正常終了した場合に実行されます。
【elseを使ったサンプルコード】
for num in range(1, 4):
print(num)
else:
print("Loop completed successfully")
【出力】
1
2
3
Loop completed successfully
【処理の説明】
- range(1, 4) により、1から3までの数値が生成される
- ループがすべて実行された後、elseブロックの処理が実行される
- breakが実行されなかったため、Loop completed successfullyが表示される
reversedを使って後ろの要素から順に取得する
Pythonでは、reversed() 関数を使うことで、リストやタプルなどの要素を逆順に取得できます。通常のforループではリストの先頭から処理が行われますが、reversed() を使うことで、後ろの要素から順に処理を行うことが可能です。
【reversedを使ったサンプルコード】
numbers = [1, 2, 3, 4, 5]
for num in reversed(numbers):
print(num)
【出力】
5
4
3
2
1
【処理の説明】
- numbers というリストに [1, 2, 3, 4, 5] を格納
- reversed(numbers) により、リストを逆順で取得
- for num in reversed(numbers): によって、リストの最後の要素から順番に num に格納し、ループを実行
- 1回目のループでは num = 5 となり出力、2回目は num = 4、と続き、最終的に 1 まで処理される
zip()関数を使って複数のリストの要素を取得する
zip() 関数を用いることで、複数のリスト(またはタプル)を同時に処理することが可能です。たとえば名前とスコアのリストがある場合、それらをペアとして処理できます。
【zip()関数を使ったサンプルコード】
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
【出力】
Alice: 85
Bob: 90
Charlie: 78
【処理の説明】
- names リストに "Alice", "Bob", "Charlie" を格納
- scores リストに 85, 90, 78 を格納
- zip(names, scores) により、それぞれのリストの要素が対応する形でペアになる
- for name, score in zip(names, scores): によって、各要素を取得し、print() で出力
enumerate関数を使って要素とインデックスを取得する
enumerate() を使用すると、リストの要素に加えて、インデックス(番号) も同時に取得できます。
【enumerate関数を使ったサンプルコード】
items = ["apple", "banana", "cherry"]
for index, item in enumerate(items):
print(f"{index}: {item}")
【出力】
0: apple
1: banana
2: cherry
【処理の説明】
- items リストに "apple", "banana", "cherry" を格納
- enumerate(items) により、各要素とともにインデックス(0から始まる番号)が生成される
- for index, item in enumerate(items): により、index に番号、item に要素が格納される
- print(f"{index}: {item}") でインデックスと要素を出力
スライスを使って一部の要素のみを取り出す
Pythonのスライス機能を活用すると、リストの一部の要素のみを取得できます。スライスはリスト[start:stop:step] の形式で指定し、特定範囲のデータを簡単に抽出することが可能です。
【スライスを使ったサンプルコード】
colors = ["red", "blue", "green", "yellow", "purple"]
for color in colors[1:4]: # インデックス1から3の要素を取得
print(color)
【出力】
blue
green
yellow
【処理の説明】
- colors リストに "red", "blue", "green", "yellow", "purple" を格納
- colors[1:4] により、インデックス 1 から 3(4 は含まない)までの要素を抽出
- for color in colors[1:4]: によって、選択された要素を順に取得し、print(color) で出力
- Pythonの「for文」はリストやタプル、文字列などのデータを順番に処理するために使用される
- range() を使うことで一定回数のループを実行できる
- break を使うと条件を満たした際にループを途中で終了できる
- continue を使うと特定の条件のときにその回の処理をスキップできる
- else を併用するとループが正常終了した際に追加の処理を実行できる
- reversed() を使うとリストの要素を後ろから順に処理できる
- zip() を使うと複数のリストの要素を同時に取得しながら処理できる
- enumerate() を使うとインデックスと要素を同時に取得してループ処理ができる