Pythonの繰り返し文 — for、while、break
このトピックを終えると
forとwhileを使って繰り返しを作り、breakとcontinueを使って処理の流れを制御できるようになります。
for文 — 決まった回数だけ繰り返す
python
# リストの順回fruits = ["リンゴ", "バナナ", "ブドウ"]
for fruit in fruits: print(fruit)# リンゴ# バナナ# ブドウfor 変数 in 順回可能なもの: — リスト、文字列、rangeなどを一つずつ取り出して実行します。
range() — 数字の範囲を生成
python
# range(終わり) — 0から終わり-1までfor i in range(5): print(i)# 0, 1, 2, 3, 4
# range(始まり, 終わり)for i in range(2, 6): print(i)# 2, 3, 4, 5
# range(始まり, 終わり, 間隔)for i in range(0, 10, 2): print(i)# 0, 2, 4, 6, 8range(5)は0〜4を生成します(5は含まれません)。ほとんどすべてのプログラミング言語で、範囲は**「終値を含まない」**ことが慣例です。
while文 — 条件が真である間繰り返す
python
count = 0
while count < 5: print(f"count = {count}") count += 1
# count = 0# count = 1# count = 2# count = 3# count = 4forは「何回繰り返すか知っている」場合に適しており、whileは「いつ終わるか分からない」場合に適しています。
無限ループに注意
python
# ❌ これだと永遠に止まらないcount = 0while count < 5: print(count) # count += 1を忘れると → 無限ループ!
# 意図的な無限ループ(サーバー、ゲームなどで使用)while True: command = input("> ") if command == "quit": break print(f"入力: {command}")while文を使うときは、常に「このループはいつ終わるか?」を確認してください。
breakとcontinue
break — ループを抜ける
python
# 3を見つけたらすぐに終了for i in range(10): if i == 3: print("見つけた!") break print(i)# 0# 1# 2# 見つけた!breakは、最も近いループからすぐに抜け出します。
continue — 今回の繰り返しだけスキップする
python
# 偶数だけスキップfor i in range(6): if i % 2 == 0: continue print(i)# 1# 3# 5continueはループを終了せず、今回の繰り返しだけスキップして次の繰り返しに進みます。
入れ子になった繰り返し
python
# 九九の2〜3段for dan in range(2, 4): print(f"--- {dan}段 ---") for i in range(1, 10): print(f"{dan} x {i} = {dan * i}")繰り返し文の中に繰り返し文を入れることができます。外側のループが1回まわるごとに、内側のループが全体を実行します。
enumerate — インデックスと値を同時に
python
names = ["キムフン", "イス", "パクジン"]
# インデックスが必要なときfor i, name in enumerate(names): print(f"{i}: {name}")# 0: キムフン# 1: イス# 2: パクジンenumerate()は、**(インデックス、値)**のペアを作成します。for i in range(len(names))よりもきれいです。
forとwhileの選択基準
| 状況 | 推奨 |
|---|---|
| リスト/範囲の順回 | for |
| 回数が決まっている | for + range() |
| 条件に基づいた繰り返し | while |
| ユーザーの入力を待つ | while True + break |
ほとんどの場合、forを使うことになります。whileは、「終了する条件がデータではなく状態」のときに使います。