【Python】range()関数の使い方を徹底解説!サンプルコード付き!

Pythonで用意されているrange()関数とは、引数に指定した開始数から終了数までの連続した数値を要素として持つオブジェクトとなります。
関数となっていますが、実際には range 型のオブジェクトを作成します。

今回は、range()の使い方についてサンプルコードを使ってわかりやすく解説します。

range関数とは

range()関数とは、デフォルトで0から始まり、1(デフォルト)で増減する一連の数値を返し、指定した数値の前で停止します。

range関数の書き方

range関数は下記のようになります。

パラメータ

パラメータは下記のようになります。
開始: 開始位置を指定する整数。デフォルトは0です。
終了: 停止する位置を指定する整数。しかし、終了の引数は含まれない
間隔: インクリメント、デクリメントを指定する整数。デフォルトは1である。

range()関数の基本的な使い方

range()関数の基本的な使い方についてサンプルコードを使って解説していきます。

連番のゴールを設定する

連番のゴールを設定するには、終了の引数に整数を1つ指定します。
0からスタートして、 終了の引数の番号で終了するイメージです。

しかし終了の引数で設定した値は結果に含まれないので注意してください。
また、終了の引数を負の値に設定すると空になります。

出力結果

[0, 1, 2, 3, 4]
[]

終了の引数を5に設定したので0から4までが出力されています。
また、終了の引数を-3に設定したので何も取得できず、空で出力されています。

連番のスタートからゴールを設定する

連番のスタートからゴールを設定するにはrange(開始, 終了)のように開始の引数と終了の引数2つを指定します。
開始の引数からスタートして、 終了の引数で終了するイメージです。

開始の値は結果に含まれすが、終了の値は含まれないので注意してください。
また、1ずつ増加する連番なので、開始の値が終了の値よりも大きくなると空になります

出力結果

[5, 6, 7, 8, 9]
[]

開始の引数を5、終了の引数を10に設定したので5から9までが出力されています。
また、開始の引数を10、終了の引数を5に設定したので何も取得できず、空で出力されています。

連番のスタートからゴール、増減を設定する

連番のスタートからゴール、増減を設定するにはrange(開始, 終了, 間隔)のように開始の引数と終了、間隔の3つの引数を指定します。

開始の引数からスタートして、 間隔の引数ごとに処理を行い、終了の引数の番号で終了するイメージです。
こちらも開始の値は結果に含まれすが、終了の値は含まれないので注意してください。

出力結果

[5, 7, 9]
[]

開始の引数を5、終了の引数を10、間隔の引数を2に設定したので5、7、9が出力されています。
また、開始の引数を6、終了の引数を3、間隔の引数を2に設定したので何も取得できず、空で出力されています。

連番を逆に設定する

連番を逆に設定するにはrange(開始, 終了, 間隔)の間隔のの引数を負の値に指定します。
開始の引数からスタートして、 間隔の引数ごとに減少し、終了の引数の番号で終了するイメージです。
そのため開始の値が終了の値よりも大きくなければなりません。

また、開始の値が終了の値よりも小さい場合は空になります。

出力結果

[9, 7, 5, 3]
[]

開始の引数を9、終了の引数を2、間隔の引数を-2に設定したので9、7、5、3が出力されています。
しかし、開始の引数を2、終了の引数を9、間隔の引数を-2に設定したので何も取得できず、空で出力されています。

for文で使用する

forでもrange関数を使用することができます。

for文について知りたい場合は、【Python】for文(for in)で繰り返し処理を行う!書き方や使い方を徹底解説!をご参照ください。

出力結果

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14

このようにfor文で繰り返し処理のインデックス(カウンタ)を取得することができます。

Python2のrange()との違い

このrange()関数は、Python3とPython2で動作が異なります。

まず、Python2には指定された範囲内の数値のリストを生成するrange()とxrange()という2つの関数があります。
range()はリストを返しますが、xrange()はxrange型のオブジェクトを返します。

一方、Python3のrange()関数はオブジェクトを返します。一度にすべての数値を生成するわけではありません。

つまり、Python2のxrange()はPython3では名前が変更されrange()となり、元のrange()関数は廃止されたということになります。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し