Pythonのfor文は、リストや文字列などのデータ構造から要素を順番に取り出して処理でき、繰り返し処理を効率的に実装できます。
本記事では、for文の基本的な書き方から、break文やcontinue文を使った制御方法、enumerate()関数や辞書のループまで、実践的な使い方をコード例を交えながら詳しく解説します。
プログラミング初心者の方も理解しやすいよう、段階的にご説明しています。
Contents
Pythonのfor文とは
for文は、リスト、タプル、文字列などのデータ構造から要素を順番に取り出して処理をおこなうPythonの命令文です。
例えば、商品リストの在庫数を1つずつ確認したり、顧客の名簿から名前を順番に表示したりする場合に活用できます。
for文を使うと、同じ処理を繰り返すコードがシンプルになり、可読性が向上し修正や保守が容易になります。
なお、for文は、要素数が事前に分かっている場合に適しており、要素数が不明な場合や条件に基づく繰り返しにはwhile文をおすすめします。
for文の基本構文について
Pythonのfor文は、リストや文字列などの要素を順番に処理できる便利な機能です。
基本的な書き方は、下記のとおりです。
for文では、インデントを使って処理範囲を指定します。インデントは半角スペース4つが標準的です。
簡単な例を見てみましょう。
fruits = [‘りんご’, ‘みかん’, ‘バナナ’]
for fruit in fruits: # リストの要素を1つずつ取り出す
print(fruit) # インデントされた行で処理をおこないます。
# 出力:りんご, みかん, バナナ
応用例と出力例
for文はさまざまな場面で活用できます。本項では、各種の例をご紹介します。
文字列に対するfor
文字列を1文字ずつ処理する場合は次のように書きます。
message = “Hello”
for char in message: # 1文字ずつ処理
print(char)
# 出力:
# H
# e
# l
# l
# o
複数の変数へ値を取り出し(アンパッキング)
複数の変数を使った処理も可能です。タプルのリストから値を取り出す例を見てみましょう。
items = [(1, ‘A’), (2, ‘B’), (3, ‘C’)]
for number, letter in items: # 2つの値を同時に取り出す
print(f’数字: {number}, 文字: {letter}’)
# 出力:
# 数字: 1, 文字: A
# 数字: 2, 文字: B
# 数字: 3, 文字: C
上記の例では、items内の各タプルから、順にnumberとletterへ値を取り出し、ループしています。
forループの中のfor
入れ子になったfor文を使うと、より複雑な処理もおこなえます。九九の計算例を示します。
for i in range(1, 10): # 1から9まで
for j in range(1, 10): # 1から9まで
print(f'{i} x {j} = {i*j}’)
# 出力:
# 1 x 1 = 1
# 1 x 2 = 2
# (中略)
# 9 x 8 = 72
# 9 x 9 = 81
条件に合う要素を抽出する例
numbers = range(1, 11) # 1から10までの数値リスト
for number in numbers:
if number % 2 == 0: # 偶数かどうかを判定
print(number) # 偶数を出力する
# 出力:2, 4, 6, 8, 10
for文のループ構文について
Pythonのfor文には、便利な構文がいくつか用意されています。
代表的な構文を、見ていきましょう。
break文
break文は、ループの処理を途中で終えます。
特定条件が満たされた場合に、以降の繰り返し処理が不要な場合に便利です。
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
break # numberが3になった時点でforループを抜ける
print(number)
# 出力:1, 2
continue文
continue文は、ループ内の処理をスキップして、次の要素に進みます。
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
continue # numberが3の場合、以降の処理をスキップ
print(number)
# 出力:1, 2, 4, 5
上記の例では、numbersリストの要素を順番に処理しますが、numberが3になった時点でcontinue文が実行され、print(number)がスキップされます。したがって、3は出力されず、次の4の処理に移ります。
range()
range()関数は、整数の範囲を指定して繰り返し処理をおこなう場合に使用します。
引数として開始値、終了値、ステップ幅を指定できます。
# 5回繰り返し
for i in range(5): # 0から始め1ずつ増加する整数です。
print(i) # 出力:0, 1, 2, 3, 4
# 開始と終了を指定
for i in range(2, 9): # 2から始め1ずつ増加し、9の手前まで増加します。
print(i) # 出力:2, 3, 4, 5, 6, 7, 8
# 開始値、終了値、ステップ幅を指定
for i in range(2, 9, 2): # 2から8まで2つ飛ばしで表示
print(i) # 出力:2, 4, 6, 8
enumerate()
enumerate()関数は、リストや文字列などの要素に対して、インデックス番号と要素を同時に取得できます。開始インデックスも指定可能です。
fruits = [‘りんご’, ‘みかん’, ‘バナナ’]
for index, fruit in enumerate(fruits, start=1): # 開始インデックスを1に指定
print(f'{index}番目: {fruit}’) # 出力:1番目: りんご, 2番目: みかん, 3番目: バナナ
辞書のループ
辞書のループ処理では、items()メソッドを使用してキーと値を同時に取得できます。
scores = {‘国語’: 80, ‘数学’: 75, ‘英語’: 90}
for subject, score in scores.items():
print(f'{subject}: {score}点’) # 出力:国語: 80点, 数学: 75点, 英語: 90点
また、keys()メソッドやvalues()メソッドを使用して、キーまたは値のみを取得することも可能です。
for subject in scores.keys(): # キーのみを取得
print(subject) # 出力:国語, 数学, 英語
for score in scores.values(): # 値のみを取得
print(score) # 出力:80, 75, 90
まとめ
Pythonのfor文は、データ構造から要素を順番に取り出して処理する基本的なループ構文です。
break文やcontinue文、range()関数など、さまざまな制御方法を組み合わせて柔軟な処理を実現できます。今回ご紹介した内容をぜひ実際のコーディングで活用してみてください。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!