
Table of Contents(目次)
range()関数を使いこなす
このレクチャーでは、for文と一緒に使われるrange()関数について深掘りします。
range()関数の基本
基本的に、range()
は引数に整数を渡すと0
から順番に数値を返す関数ですが、引数を複数渡すと、listのスライスのように生成される数値の範囲を制御できます。
引数と出力される整数
range(n)
:0
から、nの1つ手前まで
の整数を返しますn
をマイナスの値や0で指定すると数値を返さないため、for文の繰り返しは一度も実行されずに終了しますn
を1以上にすると、n回繰り返されることになりますrange(3)
:0 → 1 → 2
range(n, m)
:n
から、mの1つ手前まで
の整数を返しますn < m
の関係になるように引数を渡しますrange(1, 5)
:1 → 2 → 3 → 4
n > m
の場合、何も返しませんrange(5, 1)
: # 何も返さない
n < m
であれば、マイナスの値も指定できますrange(-5, 0)
:-5 → -4 → -3 → -2 → -1
range(n, m, step)
:step
数を入力すると、range(n, m)
の範囲内でstep
数ごとに要素を抽出します- listのスライスと異なり、
n
およびm
の値は省略できません-
range(1, 20, 5)
:1 → 6 → 11 → 16
-
step
にマイナスの値を指定することも可能です- マイナスの値を指定した場合、逆順に要素が抽出されます。この時、
n
,m
の値は、n > m
の関係にないといけません。 range(5, 1, -1)
:5 → 4 → 3 → 2
- マイナスの値を指定した場合、逆順に要素が抽出されます。この時、
- listのスライスと異なり、
1. range(n) の基本
range(n)
は 0
から n-1
までの整数を順番に生成します。
for i in range(5):
print(i)
出力例:
0
1
2
3
4
2. range(n, m) の使い方
range(n, m)
は n
から m-1
までの整数を順に生成します。listのスライスと異なり、n
を省略することはできません。
for i in range(2, 6):
print(i)
出力例:
2
3
4
5
3. range(n, m, step) でステップ指定
range(n, m, step)
は n
から m-1
までの整数を、step
ごとに生成します。step
は正の値でも負の値でも指定可能です。
for i in range(1, 10, 2):
print(i)
出力例:
1
3
5
7
9
step
に負の値を指定すると、逆順に数値を生成できます。
for i in range(5, 0, -1):
print(i)
出力例:
5
4
3
2
1