このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】繰り返しのfor文

繰り返しのfor文

 Pythonのfor文は、イテラブルなオブジェクト(リスト、文字列、タプル、集合、辞書など)の各要素を順次取り出し、指定した処理を実行するための非常に柔軟な制御構造です。繰り返し処理を行う際、for文は「for each」ループとして各要素に対して同じ処理を施すので、コードの簡潔化と可読性の向上に大いに役立ちます。
 ここでは、for文の基本構文から、その実行の流れ、そしてさまざまなイテラブルに対する適用例まで、具体的なコード例や表を用いて詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.for文の基本構文と処理の流れ

1.1. 基本構文

for文の基本的な書き方は、以下のようになります。

for 変数 in イテラブル:
    文1
    文2
    # ...

解説

  • 変数: イテラブルから順に要素が代入される変数です。変数名は任意ですが、意味のある名前を付けると可読性が向上します。
  • イテラブル: リスト、文字列、タプル、集合、または辞書(キーが対象)など、反復可能なオブジェクトです。
  • コロン (:): for文のヘッダーの終わりを示し、その後にインデントされたブロックがfor文の本体になります。
  • インデント: Pythonではインデントがブロックを定義するため、必ず統一されたスペース数(通常は空白4個)を使用して記述します。

1.2. for文の処理の流れ

 for文は、イテラブルから要素を1個ずつ取り出し、変数に代入してから、そのブロック内の文を実行します。すべての要素が処理されたら、for文のループは終了し、その後の文が実行されます。

処理の流れの概要

ステップ説明
1. イテラブルの生成例: リスト、文字列、タプルなど
2. 変数に要素を代入例: for item in iterable:
3. ブロック内の文を実行変数 item に各要素が代入される
4. すべての要素が処理されたら終了ループが終了し、次の文へ実行が移る

2.for文の具体例とその応用

2.1. リストを利用した繰り返し処理

 ここでは、季節の名前が格納されたリストを使い、各季節に「Enjoy」を付けて挨拶を表示する例を示します。

# 季節の名前が格納されたリストを定義
seasons = ['Spring', 'Summer', 'Autumn', 'Winter']

# for文を用いて各季節に "Enjoy" を付けて表示する
for season in seasons:
    print("Enjoy", season)

実行結果

Enjoy Spring
Enjoy Summer
Enjoy Autumn
Enjoy Winter

解説

  • リスト seasons は4つの要素を持ちます。
  • for文はリストから順に各要素を取り出し、変数 season に代入します。
  • 各ループで、print("Enjoy", season) が実行され、「Enjoy Spring」などが順に表示されます。

2.2. 文字列を利用した繰り返し処理

 文字列もイテラブルであり、for文で1文字ずつ取り出すことが可能です。次の例では、アルファベットの文字列を1文字ずつ表示します。

# 文字列を定義
alphabet = "PYTHON"

# for文を用いて各文字を表示する
for letter in alphabet:
    print(letter)

実行結果

P
Y
T
H
O
N

解説

  • 文字列 "PYTHON" は各文字が順にイテレートされ、変数 letter に代入されます。
  • ループ内で各文字が改行されながら表示され、最終的に "P", "Y", "T", "H", "O", "N" が1文字ずつ出力されます。

2.3. 他のイテラブルへの適用

 for文は、タプル、集合、辞書などさまざまなイテラブルに対して利用できます。たとえば、辞書の場合、for文を用いるとキーが1個ずつ取り出されます。

# 辞書を定義:品名と価格の対応
products = {'apple': 120, 'banana': 80, 'cherry': 200}

# 辞書のキーを順に取り出し、対応する値とともに表示する
for item in products:
    print(item, "costs", products[item], "yen")

実行結果

apple costs 120 yen
banana costs 80 yen
cherry costs 200 yen

解説

  • 辞書 products からは、キー(この場合は品名)が順次取り出され、変数 item に代入されます。
  • products[item] によって、各品名に対応する値が取得され、例えば「apple costs 120 yen」と表示されます。
  • 辞書の場合、キーの順序は挿入順が保証されるPython 3.7以降では、ほぼ追加された順序で反復処理されます。

下記の表は、for文の各イテラブルへの適用例をまとめたものです。

イテラブル例の記述出力例
リストfor item in ['Spring', 'Summer', 'Autumn', 'Winter']:"Enjoy Spring"、"Enjoy Summer"、…
文字列for ch in "PYTHON":"P"、"Y"、"T"、"H"、"O"、"N" (1文字ずつ出力)
タプルfor num in (1, 2, 3):1、2、3 (各要素が順に出力)
集合for color in {'red', 'green', 'blue'}:順序は環境依存(例: "green"、"red"、"blue")
辞書(キーのみ)for key in {'apple': 120, 'banana': 80}.keys():"apple"、"banana" (キーが出力される)

まとめ

 for文は、イテラブルなオブジェクトの各要素に対して同じ処理を繰り返すための主要な制御構造です。

  • 基本構文for 変数 in イテラブル: とコロンの後にインデントされた文が、各要素に対して実行されます。
  • 処理の流れ: イテラブルから順に要素を取り出し、その値を変数に代入して、ブロック内の処理を行います。
  • 多様なイテラブルへの適用: リスト、文字列、タプル、集合、辞書など、さまざまなオブジェクトに対してfor文を適用でき、用途に応じた柔軟な反復処理が実現可能です。
  • 注意点: for文のブロック内でイテラブルの内容を変更する場合は、コピーを作成するなどの工夫が必要です。

 これらの知識を活用して、for文を使った効率的で可読性の高い繰り返し処理を実装し、プログラムの処理の自動化や大量データの操作を効果的に行いましょう。