Pythonのrange関数とは?4つの使い方

for文でおなじみのrange関数の使い方を説明していきます。この関数の使い方を詳しく知っていればより柔軟にfor文のプログラムを作ることができます。

この記事で紹介しているコードはPythonのIDLE表記になっています。実際にプログラムの挙動を確かめたい

range関数とは?

range関数とはPythonの組み込み関数で、引数の値を基準にして連続した数値を返します

Pythonのドキュメントには「rangeは、実際には関数ではなくイミュータブルなシーケンス型」と記載されていますが無視してください。最初のうちは関数という認識でかまいません。

それに、「Pythonの組み込み関数」のページでrangeが紹介されているので「関数」という認識で差し支えありません。

range関数の使い方

その1.ストップを決める

引数として一つだけ数値を渡した場合を見ていきましょう。stop引数には数値が入りますが、その場合以下のように0からその数値の一つ前までの整数を返します

上の例ではlist関数を使ってrange関数の戻り値をリストにして表しています。

range関数の引数が3なので「0~2」を返します。stop引数より一つ小さい数までであることに注意してください

また、このように入力した場合のスタートは0で固定です。数え出しを変更したい場合はその2へ

以下はfor文と合わせて使った場合の例です。

range関数の引数が5なので「0~4」までの5個の数値を返します。引数に入力した数値の”個数”だけ数値が返されると覚えておきましょう。

その2.複数の引数

range関数はこのようにstart、stop、stepの3つの引数をとることができます。このように書くことで、スタートを変えたり、数値を逆順に出力したり、一つ飛ばしや二つ飛ばしなどができます。

数え出しの変更

その1でも見たように基本は0から数えだしますが、start引数に数値を指定することで0以外の数字からスタートできます

上の例では、start引数に2、stop引数に6を指定しています。それをlist関数でリストにして出力しています。このときstep引数は省略できます。

start引数が2なのでリストも2から始まっています。その1でも見たようにstop引数は6ですから一つ小さい5までの数値がリストに入っています。

逆順にする方法

step引数に「-1」を指定すると逆順にできます。

上の例では、start引数は8、stop引数は2、step引数は-1となているので、8からスタートして2の一つ手前の3までの数値を返します。

逆順にするときは「start引数>stop引数」にします。start引数の方が大きくないと逆順にできません。

とびとびの値をとる方法

step引数に任意の整数を渡すとその値だけ飛んだ数値を返します。step引数の値によってどのように飛び飛びの値をとるかは以下の例で確認してください。

昇順の方はstep引数が正の数になっているのでリストの中の値は増加しています。このときstop引数に10を指定していますが、実際にリストに含まれているのは一つ手前の9までになります。

逆順の場合はstep引数が負の数になっています。また、stop引数に-10を指定していますが実際にリストに含まれているのは一つ手前の-9までになります。

もちろん、とびとびの数値をとっているので必ずstop引数の一つ手前の数値がリストに含まれているとは限りません。

まとめ

range関数は最大で3つの引数をとります。最低1つの引数で動作します。stop引数の数値は出力されないことに注意していください。

range関数を自由に使えるとfor文でより柔軟なプログラムを書くことができますし、この記事でも見たようにリスト関数にも使えます。

IDLEで実際にいろんな数値を当てはめて挙動を確かめてみてください。

当ブログではPython初心者が独学で習得するためのカリキュラムを公開中!

初心者がPythonを独学で習得できたロードマップはコチラ
Python組み込み関数range
最新情報をチェックしよう!