この記事では
pythonでのfor文の使い方について、わかりやすくご紹介します!
for文を使うと効率的なコードをに書けるので
ぜひ内容を理解して使いこなしていきましょう!
またpythonとpythonの勉強法については
こちらで詳しく紹介しているので、ぜひご参考ください!
for文とはどんな構文なのか?
まずは「for文がどんな構文なのか」ご説明します!
同じ処理を繰り返し実行したい時に使う!
結論、for文は「同じ処理を繰り返す時」に使用する構文です!

繰り返す??
例として「平均点を計算するプログラム」を考えます。
- 人数分のテストの点数を入力
- 平均点を計算
- 平均点を出力
# 生徒の人数
num = 5
# テストの点数の入力を受け取る
total_score = int(input())
total_score += int(input())
total_score += int(input())
total_score += int(input())
total_score += int(input())
# 平均点計算
ave = total_score / num
# 結果を出力
print(ave)
「入力と出力」や「数値計算」についてはこちらをご参考ください!
上記のコードの場合、明らかに
「テストの点数を受け取る」という処理を繰り返しており
生徒の人数が多いほどコードが長くなってしまいます。
for文はこのような処理をシンプルに書くことが出来ます。
for文の使い方
今回のように同じ処理を指定した回数だけ繰り返す場合
for文はrange関数を使って以下のように書きます。
for _ in range((繰り返す回数)):
(繰り返す処理)
「繰り返す処理」は
インデント(半角スペース×4)を空けて書くことに注意しましょう!
先程の「平均点を計算するプログラム」は
for文を使うと以下のように書くことが出来ます!
# 生徒の人数
num = 5
# 合計点の変数を定義
total_score = 0
# テストの点数の入力を受け取る
for _ in range(num):
total_score += int(input())
# 平均点計算
ave = total_score / num
# 結果を出力
print(ave)
さらにfor文を使う場合は処理を繰り返す回数を任意に指定できるため
生徒の人数を毎回入力から指定することも可能です!
# 生徒の人数を入力で指定
num = int(input())
# 合計点の変数を定義
total_score = 0
# テストの点数の入力を受け取る
for _ in range(num):
total_score += int(input())
# 平均点を計算
ave = total_score / num
# 結果を出力
print(ave)
またfor文は「回数を指定して繰り返す」以外にも様々な使い方があり
リスト(list)に対するfor文の使い方
次は「リストに対するfor文の使い方」をご紹介します!
リストについてはこちらをご参考ください!
要素を1つずつ取り出す
まずは「要素を1つずつ取り出す」です。
for文を使うと、リストの要素を1つずつ取り出すことが出来ます。
リストに対するfor文の使い方は以下です。
for (要素を代入する変数) in (リスト):
(要素に対する処理)
alphabets = ["a", "b", "c"]
for alphabet in alphabets:
# 要素を1つずつ出力
print(alphabet)
# 出力結果
"""
a
b
c
"""
リストの要素を1つずつ取り出すため
繰り返す回数はリストの長さ(要素の数)と同じになります。
インデックスも同時に取り出す
次は「インデックスを同時に取り出す」です。
リストの要素を取り出す時に
その要素のインデックスを同時に取り出すことが出来ます。
インデックスを同時に取り出す時はenumerate関数を使います。
for (インデックスを代入する変数), (要素を代入する変数) in enumerate((リスト)):
(要素に対する処理)
alphabets = ["a", "b", "c"]
# iにインデックス、alphabetに要素を代入
for i, alphabet in enumerate(alphabets):
# 要素とインデックスを1つずつ出力
print(i, alphabet)
# 出力結果
"""
0 a
1 b
2 c
"""
for文とリストは同時に使う場面が非常に多いので
使い方をしっかり確認しておきましょう!
辞書(dictionary)に対するfor文の使い方
最後に「辞書に対するfor文の使い方」をご紹介します!
リストの場合と同様に辞書でも
for文で要素を1つずつ取り出すことが出来ます。
辞書についてはこちらをご参考ください!
要素のキーを1つずつ取り出す

まずは「要素のキーを1つずつ取り出す」です。
辞書のキーを1つずつ取り出す場合は
以下のように書きます。
for (キーを代入する変数) in (辞書):
(キーに対する処理)
alphabets = {"a":1, "b":2, "c":3}
for key in alphabets:
# 要素とインデックスを1つずつ出力
print(key)
# 出力結果
"""
a
b
c
"""
あくまで出力されるのが要素の値ではなく、
キーであることに注意しましょう!
要素の値を1つずつ取り出す
次は「要素の値を1つずつ取り出す」です。
要素の値の値の場合はキーの場合と異なりvaluesメソッドが必要です。
for (値を代入する変数) in (辞書).values():
(値に対する処理)
alphabets = {"a":1, "b":2, "c":3}
for value in alphabets.values():
# 要素の値を1つずつ出力
print(value)
# 出力結果
"""
1
2
3
"""
range関数やenumerate関数などの関数とは異なり
メソッドであるため、values((辞書))
と書かないように注意しましょう!
要素のキーと値を同時に取り出す
最後は「要素のキーと値を同時に取り出す」です。
要素のキーと値を同時に取り出す時はitemsメソッドを使用します!
alphabets = {"a":1, "b":2, "c":3}
for key, value in alphabets.items():
# 要素とインデックスを1つずつ出力
print(key, value)
# 出力結果
"""
a 1
b 2
c 3
"""
辞書はキーと値を同時に使用することが多いため
for文を使う場合itemsメソッドを使うことが最も多いです!
まとめ
今回はpythonでのfor文の使い方について
- for文とはどんな構文なのか
- リストに対するfor文の使い方
- 辞書に対するfor文の使い方
という流れで紹介しました!
for文はこちらで紹介しているif文と同様に非常に重要な構文です。
ぜひ扱いをマスターして、使いこなしていきましょう!