Python: range()オブジェクトとは、使い方

range()オブジェクト

range()オブジェクトとは、 整数の並びで構成されるイテラブル (繰り返し処理が可能)なオブジェクトの1つです。
繰り返し処理の for文や、整数の並びを取得したい場合に使われ、 引数の指定方法は次の3パターンあります。

書式
range(終了)

range(開始, 終了)

range(開始, 終了, ステップ)

range(終了)

range()オブジェクトの中身を知るために、 range()オブジェクトをprint()で表示してみます。

r = range(5)

print(r) # range(0, 5)

「range(0, 5)」と表示されていて、 なんとなく範囲を示しているのはわかります。

次に、 range()オブジェクトをリストコンストラクタに渡してリストにしてみます。

r = range(5)

li = list(r)

print(li) # [0, 1, 2, 3, 4]

リストにするとわかりやすくなります。 range(5)は 0から4までの整数の並びです。

つまり range(終了) は「0から終了-1」までの整数の並びとなります。

range(開始, 終了)

次は開始と終了を指定します。

r = range(1, 5)

li = list(r)

print(li) # [1, 2, 3, 4]

range(1, 5)は 1から4までの整数の並びです。
つまり range(開始, 終了) は「開始から終了-1」までの整数の並びとなります。

range(開始, 終了, ステップ)

次は開始、終了、ステップを指定します。

r = range(1, 10, 2)

li = list(r)

print(li) # [1, 3, 5, 7, 9]

range(1, 10, 2)は1から9までの整数で、 かつステップ数(間隔)が 2 となっています。
つまり range(開始, 終了, ステップ)は「開始から終了-1」までで、 かつ「間隔が指定ステップ数」の整数の並びです。

「ステップ」にはマイナスの数値を指定することもできます。

r = range(5, 0, -1)

li = list(r)

print(li) # [5, 4, 3, 2, 1]

for文でrange()を使う場合

for文でrange()を使って繰り返し処理を行う場合は次のように記述します。

for i in range(3):
	print(i)

# 実行結果
0
1
2