Python range() ビルトイン関数

Python 3 ドキュメントより

range は関数ではなく、実際にはイミュータブルなシーケンス型であり、Ranges and Sequence Types — list, tuple, range で文書化されています。

Introduction

range 型は、通常 for ループで特定の回数だけループするために使用されます。rangestartstopstep の 3 つのパラメーターを受け取ります。各パラメーターは整数である必要があります(ビルトインの int または index() 特殊メソッドを実装する任意のオブジェクト)。

パラメーターが 1 つしかない場合、それは stop パラメーターを表します。step パラメーターが省略された場合、デフォルトは 1 になります。start パラメーターが省略された場合、デフォルトは 0 になります。

range は負のインデックスをサポートしますが、これらは正のインデックスによって決定されるシーケンスの末尾からのインデックス指定として解釈されます。

range 型が通常の listtuple よりも優れている点は、range が表すサイズに関係なく、range オブジェクトは常に同じ(小さい)量のメモリしか消費しないことです

Input Parameters

range は、連結と繰り返しを除くすべての一般的なシーケンス操作を実装します(range オブジェクトは厳密なパターンに従うシーケンスのみを表すことができ、繰り返しと連結はそのパターンを通常違反するため)。

start:

  • start パラメーターの値
  • 指定されない場合、パラメーターは 0 にデフォルト設定されます
  • パラメーター値は包括的です

stop

  • stop パラメーターの値
  • 必須の唯一のパラメーターです
  • パラメーター値は排他的です

step

  • step パラメーターの値
  • 指定されない場合、パラメーターは 1 にデフォルト設定されます

Examples

stop パラメーターのみを指定した range

for i in range(5):
    print(i)
0
1
2
3
4

start パラメーターと stop パラメーターの両方を指定した range

for i in range(1, 8):
    print(i)
1
2
3
4
5
6
7

すべてのパラメーターを指定した range

for i in range(0, 30, 5):
    print(i)
0
5
10
15
20
25

すべてのパラメーターを指定したが、stop パラメーターが step パラメーターで割り切れない range

for i in range(0, 10, 3):
    print(i)
0
3
6
9

すべてのパラメーターを指定し、stop パラメーターと step パラメーターが負である range

for i in range(0, -6, -1):
    print(i)
0
-1
-2
-3
-4
-5

stop パラメーターが 0 に設定されている 2 つの例

for i in range(0):
    print(i)
(no output)
for i in range(1, 0):
    print(i)
(no output)