すぐわかる、Pythonのrangeの使い方
- 作成日: 2021-02-10
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonのrangeの使い方
プログラミング言語のPythonには数列を扱う組み込み関数range()
があります。
このrange()
を使うと一定範囲内のループ処理を簡単に書けたり、手軽に数列を得ることが出来ます。
Pythonのfor
文ではこのrange()
を使うことが多いので、馴染みの多い関数と言えます。
この記事ではPythonのrange()
について解説します。
具体的には↓を見ていきます。
- range()の構造
- range()で数列を得る
- range()でfor文を回す
range()の構造
Pythonのrange()
は組み込み関数に分類されます。
range()
は↓のような構造になっています。
class range(start, stop[, step])
range()
は組み込み「関数」に分類はされてますがその実体はクラスなんですね。
range()
は最大で3つの引数を取ります。
start(第1引数: オプショナル)
start
には生成する数列の開始点を指定します。
たとえば0
から数列を得たい場合はこのstart
に0
を指定します。
任意の数から数列を得たい場合はstart
に任意の数を指定します。
range()
に引数を1つだけ渡した場合、start
には0
が設定されます。
stop(第2引数: 必須)
stop
には生成する数列の終了点を指定します。
たとえば数列を10
まで生成したい場合はこのstop
に11
を指定します。
20
まで生成したい場合は21
です。
range()
に引数を1つだけ渡した場合、その引数はstop
になります。
step(第3引数: オプショナル)
step
には生成する数列のステップ数を指定します。
たとえばstep
に2
を指定すると、数列は0
, 2
, 4
, ...と言う風に生成されます。
step
に負数を指定した場合、たとえば-2
を指定した場合は数列は0
, -2
, -4
, ...と言う風に生成されます。
range()で数列を得る
range()
に任意の整数を渡すと数列を生成できます。
浮動小数点数はサポートしていません。
順列を得る
順列を得たい場合の1つの方法は、↓のように引数を1つだけ(stop
にだけ)指定します。
range(4)
↑の場合、0
から4
より下までの数列が生成されます。
ただしrange()
だけでは数列は得られません。
print()
でrange()
を出力するとわかります。
print(range(4))
↑のコードの結果は↓のようになります。
range(0, 4)
range()
を数列に変換するにはlist()
やtuple()
などに渡して変換します。
たとえば↓のようにです。
print(list(range(4)))
↑のコードの結果は↓のようになります。
[0, 1, 2, 3]
また任意の開始点から任意の終了点までの数列を生成したい場合は↓のようにします。
↓の例では4
から8
より下までの数列を生成しています。
print(list(range(4, 8)))
↑のコードの結果は↓のようになります。
[4, 5, 6, 7]
任意のステップ数で順列を得る
range()
のstep
を指定すれば任意のステップ数の数列を得ることが出来ます。
↓の例ではstart
に0
, stop
に10
, step
に2
を指定しています。
print(list(range(0, 10, 2)))
[0, 2, 4, 6, 8]
逆列を得る
range()
で逆列を得たい場合はstart
に大きい値、stop
に小さい値、step
に負数を指定します。
たとえば↓のようにです。
print(list(range(4, 0, -1)))
[4, 3, 2, 1]
逆列の場合はstop
の値より大きい値までステップします。
↑の場合はstop
に0
を指定してますが、得られるのは1
までの数列です。
range()でfor文を回す
range()
を使えばfor
文を回すことが出来ます。
range()
のもっともポピュラーな使い方ではないでしょうか。
いわばfor
文とrange()
はトムとジェリー、コロンボとかみさん、切っても切れない関係と言えます。
0から任意の数まで回す
0
から任意の数までfor
文を回したい場合は↓のようにします。
for i in range(4):
print(i)
↑のコードの結果は↓のようになります。
0
1
2
3
↑のようにrange()
はlist()
などに変換しなくてもfor
文に直接渡すことが出来ます。
具体的にはin
キーワードに渡せるのがrange()
なんですが。
range()
でfor
文を回す場合は↑のi
のように生成される数列が順に渡されていきます。
↑の場合、数列は[0, 1, 2, 3]
が生成されますので、i
にはその数列の値が順に渡されていきます。
任意のステップ数で回す
任意のステップ数で回したい場合は↓のようにします。
for i in range(0, 10, 2):
print(i)
↑のコードの結果は↓のようになります。
0
2
4
6
8
任意の数から0まで回す
任意の数から逆順に回したい場合は↓のようにします。
for i in range(10, 0, -2):
print(i)
10
8
6
4
2
おわりに
今回はPythonのrange()
について見て見ましたがいかがでしたでしょうか。
range()
はPythonではよく使われる組み込み関数です。
ばっちり覚えておけば役立つこと間違いなしですね。
🦝 < range()で希望の数列を生成しよう
🐭 < 夢を掴め! 大志を抱け!