Chapter 2 / Control Flow
Lesson 2.2 for と range
for 文の基本形と、ループの中で値を更新する形を練習します。
このページは無料で閲覧できるサンプルです。実際に手を動かして写経し、進捗を保存して学習を進めるには、ログインしてから学習ページへお進みください。
このレッスンで学ぶこと
このレッスンは Chapter 2 後半のまとめで、for 文と range を組み合わせた繰り返しの基本パターンを定着させます。「n 回繰り返す」「1 から N まで処理する」「合計を求める」といった処理は、本サイトの後のレッスンや実際のプログラムで何百回も書くことになります。
ループの中で外の変数を更新する「累積パターン」がここでの新しいポイントです。total = 0 → for で += → 最後に print、という 3 ステップの流れは、合計・カウント・平均など多くの集計処理の土台になります。
写経 1
写経 1
range で 1 から 5 まで順番に表示します。
for number in range(1, 6):
print(number)1
2
3
4
5写経 2
写経 2
ループの中で合計を更新し、最後に結果を表示します。
total = 0
for number in range(1, 5):
total += number
print("sum:", total)sum: 10発展問題 (概要のみ)
発展問題
1 から 10 までの偶数だけを表示する for 文を書いてみましょう。
for number in range(1, 11):
発展問題の自動採点はログイン後の学習ページでのみ動作します。
累積パターン (total += ...) の型
ループの外で total = 0 と初期化し、ループの中で total += number と書き、ループが終わったあとに print(total) で表示する、というのが累積処理の定番の型です。初期化を忘れると NameError、ループの中で誤って total = number (=) と書くと毎周上書きされて最後の値しか残らない、といった失敗が初心者に多いです。型を一度しっかり手に覚えさせれば、件数 (count) や最大値の更新など、似たパターンに簡単に応用できます。
range の 3 引数を使い分ける
- range(n): 0 から n-1 までの整数を順に生成 (例: range(5) → 0, 1, 2, 3, 4)
- range(start, stop): start から stop-1 まで (例: range(1, 6) → 1, 2, 3, 4, 5)
- range(start, stop, step): step 飛ばし (例: range(0, 10, 2) → 0, 2, 4, 6, 8)
- step に負の値を入れれば逆順 (例: range(10, 0, -1) → 10 から 1 までカウントダウン)
ループ変数と外の変数の区別
for number in range(1, 5): の number は、ループの 1 周ごとに自動で 1, 2, 3, 4 と書き換わる「ループ変数」です。これに対し total はループの外で初期化された「累積用の変数」で、ループの中で += を使って加算しても、ループが終わったあとも残ります。ループ変数はループの中だけで使い、外で結果を保存したいなら別の変数を必ず外で用意する、という整理ができていると、ループの動きを読み解きやすくなります。
range だけが for の対象ではない
for で繰り返せるのは range だけではありません。リスト (for fruit in ["apple", "banana"]:)、文字列 (for ch in "hello":)、辞書のキーなど、Python の多くのデータ型は for に渡せます。Chapter 3 のリスト走査で本格的に扱いますが、まずはここで「for は同じ処理を何度も繰り返す万能スイッチ」と捉えておくと、後の応用がスムーズに入ってきます。
手を動かして練習しましょう
ログインすると、お手本コードを 1 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。