Chapter 2 / Control Flow
rangeの基本
range で連続した数値の並びを作る形を覚えます。
このページは無料で閲覧できるサンプルです。実際に手を動かして写経し、進捗を保存して学習を進めるには、ログインしてから学習ページへお進みください。
このレッスンで学ぶこと
range は「連続した整数の並び」を作るための関数です。後のレッスンの for 文と組み合わせて「3 回繰り返す」「1 から 10 まで処理する」といった書き方ができるようになります。
range は呼んだ時点では「0 から n-1 までの整数を取り出せる予約券」のようなもので、中身を取り出すまでは実体がありません。中身を画面で確かめたいときは list(range(...)) のようにリストに変換してから print します。
写経 1
写経 1
range(3) を list にして、中身を表示します。
print(list(range(3)))[0, 1, 2]写経 2
写経 2
start と stop を指定した range の中身を表示します。
print(list(range(1, 4)))[1, 2, 3]発展問題 (概要のみ)
発展問題
numbers という変数に list(range(2, 6)) を入れて、numbers をそのまま print してみましょう。
numbers = []
発展問題の自動採点はログイン後の学習ページでのみ動作します。
stop は含まれない
range(5) は 0、1、2、3、4 の 5 個で、5 そのものは含まれません。range(1, 4) も 1、2、3 の 3 個で、4 は含みません。「終わりは手前まで」と覚えると、ループの回数を数え間違えにくくなります。逆に start を省略すると 0 から始まる、と覚えてしまえば range(n) は「0 から n 個」と即座に読めるようになります。
3 つ目の引数で歩幅を変えられる
range(0, 10, 2) と書くと、0、2、4、6、8 のように 2 飛びになります。第 3 引数を step (歩幅) と呼びます。負の値を指定すると逆順 (range(5, 0, -1) は 5、4、3、2、1) になります。「偶数だけ」「1 つ飛ばし」「カウントダウン」など、よくある繰り返しパターンの大半はこの 3 つ目の引数で表現できます。
直接 print すると?
print(range(3)) と直接書くと、画面には range(0, 3) という文字が表示されるだけで、中身の 0, 1, 2 は出てきません。これは range が「予約券」であって、中身を必要になったタイミングで 1 つずつ取り出す仕組み (これを Python では iterable と呼びます) になっているからです。中身を確かめたいときは必ず list(range(3)) のようにリストに変換してから print してください。
手を動かして練習しましょう
ログインすると、お手本コードを 1 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。