Pythonはrange関数で連番が作成できます。
しかし、
どのように作成して良いか今一歩わからないというアナタへ。
『range関数の使い方は?』
『範囲を指定する方法は?』
『最後の判定はドコに境界があるの?』
『始まりを省略した時の初期値は?』
『range関数の戻り値は?』
このような疑問に答えます。
本記事の内容

【Python】range関数の使い方!範囲・最後の判定・初期値
Pythonでrange関数を使えば、簡単に連番が作成できます。
引数に連番の開始・終了・間隔(増える値)をそれぞれ指定するとOK。

関数仕様は次の通りです。
最後の判定は少しクセがあるので気を付けてみてください。
- 引数
- 開始(start)…任意(省略時は0)
- 終了(stop)…必須
- 間隔(step)…任意(省略時は1)
- 戻り値
開始(start)から終了(stop)の直前まで、間隔(step)づつ加算した連続値 - 戻り値の型
range 型のオブジェクト
第3引数の間隔(step)は『連番の間隔』という意味です。
カウントアップする量といった方がわかりやすいかも知れません。
(間隔がマイナス値の場合、カウントダウンする量になります)
戻り値はrangeオブジェクトで連続値となります。
連続値とは「startからstopの直前までstepづつ加算した値」のことです。
連続値の範囲は次の通り。
stop≦連続値<stop
最後の判定は間違いやすいので注意しましょう。
終了値(stop)は含みません。stopの手前で終了します。
(間隔がマイナス値の場合は不等号が逆になります)
stop≧連続値>stop
省略可能な引数は、開始値(start)と間隔値(step)です。
引数を省略時の初期値は次の通り。
第1引数の始点・始まり(step)を省略時は0
第3引数の間隔(step)を省略時は1
第2引数の終了(stop)は必須。終了は省略不可です。


【Python】range関数の例…リスト化と範囲・最後の判定
range関数の説明だけでは辛かったかもしれません。
range関数を使用した例文で具体例を見ていきましょう。
(例文)
range関数の引数(開始:2、終了:5、間隔1)のケース
x = range(2, 5, 1)
print(x)
print(list(x))
range(2, 5, 1) [2, 3, 4]
第3引数の間隔に1を指定しているので、1づつカウントアップします。

range(2, 5, 1)になってるなぁ…
ややこしいところですが、
range関数の戻り値の型はrangeオブジェクトなんです。
なので、
renge関数は連続値を作成しますが、print(x)ではrange(2, 5, 1)となります。

printで連続値が表示するにはリスト化(list型に変換)するとOKです。
print(list(x))の実行結果は[2, 3, 4]になってますね。
第3引数の間隔に1を指定しているので、1づつカウントアップして[2, 3, 4]となります。

終了値は5なのに、なんで5で終わらないの?
もう1つ大事なポイントはrangeの終了判定です。
いったい「ドコからドコまで」を連続値の最後と判定するのでしょうか?
例文にある終了値が5の終了判定を考えてみましょう。
実行結果の表示は[2, 3, 4]となっています。
終了値は連続値に含まれてません。
実は…
終了値の手前に連続値の境界線があるのです。
例では4と5の間に境界線があります。
イメージはこんな感じです。
1|234|5
境 境
界 界
renge(2, 5, 1)で指定した終了値5は、連続値の対象外になります。
開始値の2の手前にも連続値の境界線がありますね。
つまり、
range関数が作成する連続値の範囲は
2≦連続値<5
開始値 ≦連続値<終了値
となります。
最後の判定は間違いやすいので注意しましょう。
引数で指定した終了値は含みません。終了値の手前で終了します。

もし、2から5までの連続値を作りたかったら
range(2, 6, 1)と指定すればOKですね。
また、
間隔がマイナス値の場合は不等号が逆になりますが考え方は同じです。
開始値≧連続値>終了値
このように不等号は逆ですが、終了値は含みません。
【Python】range関数の例…始まり省略時の初期値は0
range関数の引数は次の3つあります。
- 開始(start)…任意(省略時は0)
- 終了(stop)…必須
- 間隔(step)…任意(省略時は1)
第1引数と第3引数は省略可能です。
省略時の初期値を見ていきましょう。
第1引数を省略時の開始(start)は0
第3引数を省略時の間隔(step)は1
となっていますね。
第2引数の終了(stop)は省略不可で必須です。

range関数の具体例!引数省略時の初期値
例文で具体例をみていきましょう。
(例文1)range(0, 3, 1)と(例文2)range(3)は同じ結果になります。
(例文1)
range関数の引数(開始:0、終了:3、間隔:1)
x = range(0, 3, 1)
print(list(x))
[0, 1, 2]
(例文2)
range関数の引数(開始:なし、終了:3、間隔:なし)
x = range(3)
print(list(x))
[0, 1, 2]
(例文1)も(例文2)も同じ連続値[0, 1, 2]となっていますね。
【Python】range関数の使い方!まとめ
いかがでしたでしょうか?
range 関数の使い方について説明いたしました。
range関数は簡単に連続値を作成できるので、for文で良く使用されます。
振り返ってみましょう!
range 関数の基本構文です。
- 引数
- 開始(start)…任意(省略時は0)
- 終了(stop)…必須
- 間隔(step)…任意(省略時は1)
- 戻り値
開始(start)から終了(stop)の直前まで、間隔(step)づつ加算した連続値 - 戻り値の型
range 型のオブジェクト
range 関数の構文詳細です。
- 連続値
startからstopの直前までstepづつ加算した値 - 間隔
プラスの場合…カウントアップする量
マイナスの場合…カウントダウンする量
- stop≦連続値<stop
最後の判定に注意
終了値(stop)は含まず、stopの手前で終了
(間隔がマイナスの場合は不等号が逆)
第1引数の始点・始まり(step)を省略時は0
第3引数の間隔(step)を省略時は1
※第2引数の終了(stop)は省略不可で必須。
range関数は意外と奥が深いですよね。
もう少し掘り下げて、ケーススタディしてみたいかたはコチラ。

range関数はfor文で頻繁に使用します。
range関数でカウントアップした連番をfor文ループでさせるのです。
range関数を使用したfor文は学びたい方はコチラ。

どんなコトでも解ってつもりじゃなく、本当の意味で理解することが重要。
一緒にガンバりましょー

Follow @koisyo_ok プロフィールの詳細はこちら