概要
Python3のrange関数は引数で指定した範囲の整数列をrangeオブジェクトで返す。rangeオブジェクトを表示するには、list関数でリスト化する必要がある。
1 2 3 4 |
>>> range(0, 5) range(0, 5) >>> list(range(0, 5)) [0, 1, 2, 3, 4] |
書式
- range(end)
- 0から始まり、1ずつ増加してendに達しない範囲の数列
- range(start, end)
- startから始まり、1ずつ増加してendに達しない範囲の数列
- range(start, end, step)
- startから始まり、stepずつ増加してendに達しない範囲の数列
引数は整数である必要があり、そうでなければエラーとなる。
共通なのは、開始値からステップ値ずつ変化させ、終了値に達する直前までの数列を返す、というもので、ステップ値が正の場合にはstart ≤ 値 < endを、ステップ値が負の場合にはstart ≥ 値 > endを要素とする数列となる。
実行例
引数を1つだけ指定した場合は、0から引数未満の整数列となる。
1 2 |
>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
引数を2つ指定すると、第1引数以上、第2引数未満の整数列となる。
1 2 |
>>> list(range(3, 10)) [3, 4, 5, 6, 7, 8, 9] |
引数を3つ指定すると、第1引数から第3引数ずつ増加して第2引数を超える手前までの整数列となる。
1 2 |
>>> list(range(0, 10, 3)) [0, 3, 6, 9] |
第3引数を負の数とすると、降順の数列になる。このとき、第2引数の終了値以下になる前までの数列となっていることに注意。
1 2 3 4 |
>>> list(range(10, 0, -1)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] >>> list(range(10, 0, -4)) [10, 6, 2] |
なお、2つだけ引数を指定して、第1引数>第2引数としても、降順の数列は得られず、空となる。
1 2 |
>>> list(range(10, 0)) [] |