本文へスキップ

Python Typing Tutor

サンプルレッスン一覧

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 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。