初心者でもわかる!Pythonのfor文の基本と活用テクニック完全ガイド

Pythonで繰り返し処理を行う際に欠かせないのが「for文」です。
リストや辞書、文字列などのデータ構造を簡潔にループできるため、Python初心者はもちろん、中級者にとっても日常的に使う機能の一つです。

本記事では、Pythonにおけるfor文の基本構文から、よくある使い方、応用テクニック、注意点までをわかりやすく解説します。
これからPythonを学ぶ方はもちろん、すでに書いているけれどfor文に自信がないという方にも役立つ内容です。


for文の基本構文を理解しよう

Pythonのfor文は、イテラブルなデータ構造(リスト、タプル、文字列、辞書など)に対して、一つひとつの要素を順に取り出して処理を行う構文です。
基本的な構文は以下の通りです。

for 変数 in イテラブル:
実行する処理

例:リストをループする

fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)

このコードを実行すると、リストの要素が1行ずつ出力されます。

apple
banana
orange

range()関数と組み合わせたループ

Pythonでは、特定の回数だけ処理を繰り返したい場合にrange()関数を使います。

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

出力:

0
1
2
3
4

スタート・ストップ・ステップを指定する

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

出力:

1
3
5
7
9

文字列をループする

文字列もイテラブルなオブジェクトなので、for文で1文字ずつ取り出すことが可能です。

text = "hello"
for char in text:
print(char)

出力:

h
e
l
l
o

辞書(dict)のfor文

辞書はキーと値のペアを持つデータ構造です。for文では以下のように処理できます。

キーだけをループする

person = {"name": "John", "age": 30}
for key in person:
print(key)

キーと値の両方をループする

for key, value in person.items():
print(f"{key} = {value}")

出力:

name = John
age = 30

ネストされたfor文(多重ループ)

for文は入れ子にすることもできます。2次元リストなどを扱うときに便利です。

matrix = [[1, 2], [3, 4], [5, 6]]
for row in matrix:
for item in row:
print(item)

出力:

1
2
3
4
5
6

enumerate()でインデックス付きループ

インデックスを同時に取得したいときはenumerate()を使います。

colors = ["red", "green", "blue"]
for index, color in enumerate(colors):
print(f"{index}: {color}")

出力:

0: red
1: green
2: blue

zip()で複数のリストを同時にループ

複数のリストを並行して処理したいときに便利なのがzip()関数です。

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name} scored {score}")

出力:

Alice scored 85
Bob scored 92
Charlie scored 78

else節付きのfor文

Pythonのfor文にはelse節を付けることができます。これはfor文が途中でbreakされずに最後まで処理されたときに実行されます。

for i in range(5):
if i == 3:
break
else:
print("ループが最後まで実行されました")

この場合、3でループが終了するため、else節は実行されません。


for文を使ったリスト内包表記

Pythonでは、for文を使って一行でリストを作る「リスト内包表記」が可能です。

squares = [i**2 for i in range(5)]
print(squares)

出力:

[0, 1, 4, 9, 16]

リストのフィルタリングにも使えます。

even = [i for i in range(10) if i % 2 == 0]
print(even)

出力:

csharpコピーする編集する[0, 2, 4, 6, 8]

for文の注意点とよくあるミス

インデント忘れ

Pythonではインデントが重要です。for文の中の処理は必ず字下げが必要です。

# NG例
for i in range(5):
print(i) # インデントがないためエラー

辞書ループでitems()を使わない

辞書をループする際にitems()を使わず、キーしか取得できないことに気づかずバグになることがあります。

# NG例
for key in person:
print(key, person.value) # 'value'は辞書のメソッドではない

まとめ:for文を自在に使いこなそう

Pythonのfor文は非常に柔軟で、初心者でもすぐに使いこなせる一方で、熟練者にとっても便利な機能が豊富です。

  • 基本のforループ構文
  • range()を使った回数ループ
  • 辞書や文字列のループ
  • zipやenumerateでの応用
  • リスト内包表記での活用

繰り返し処理をスマートに書けるようになると、Pythonでのコーディングがぐっと楽しく、効率的になります。
まずは小さな例題から試してみて、徐々にfor文の使い方に慣れていきましょう。

タイトルとURLをコピーしました