
【Python】ループさせるなら必須の関数「range」を徹底解剖
このブログでは、これまでPythonでアルゴリズムを勉強しようというコンセプトで、いくつかアルゴリズムを紹介していきました。「線形探索」と「二分探索」をご紹介したので、種々のソート(並び替え)に入りたいと考えています。
が!これらのアルゴリズムでは、ループを使い倒します。そのループの「相棒」というべきものが、「range関数」です。この関数がうまく使えないと、ループのコードを書くのが覚束ないです😅。
では、かくなる上は、、、一度「range関数」だけを整理してみましょう!それが、ソートのアルゴリズムを学ぶ下準備になります🙂!気合が入ったところで行ってみよ~!
range関数は何のためにあるの?
さて、使い方を学ぶ前に、range関数の使用目的って何でしょう?Range関数は、「ある範囲の連続する数字」を作ってくれます。
言ってみれば、「連番自動生成機」なのです!となれば、
・連番のデータ(リスト)を作る
・ループの回数を制御する
のに役立ちそうですね~😉。
これは、「最重要関数の一つ」と言って間違いなさそうですな~🙂。
range関数の基本構文は、こうだ!
よし、ではRange関数の基本構文です。引数の数によって生成できる連番のバリエーションが変わりますから、引数に注目してみましょう!次の3つのパターンがあります。引数が、1~3まであるんですね。
1) range(stop)
2) range(start, stop)
3) range(start, end, step)
Stopは得られる数値に含まれません
1)は、「終了する数値」だけ与えるタイプです。とすると「開始する数値」は?勝手に「0」が指定されます。カウンタ変数を、リストの添字にした場合など、「開始する数値」が「0」になることは多そうです。
ということで、得られる連番は、
「0~stop未満」
となります。いいかれば、「0~(stop-1)まで」の連番が得られるということですね。stopの数だけ数値が得られるのであって、Stopの数値自体は含まれないことに注意です😄。
2)は、「開始する数値」も指定します。1)との違いは、「開始する数値」です。「Stop-1」までの連番が得られる点は、1)と同じです。
3)は、「前の数値からいくら増えるか」を指定します。1)と2)のように特に指定しないなら、「1」になります。連番といったら、普通は「1」ですからね。1,2,3,4ってね。特に指定したいときだけ、この構文を使えばいいでしょう。
リストにして確認しよう!
ではでは、実際に具体的な値を入れてどんな値が得られるか、確認しましょう!次のようにコードを書きました。Range関数の戻り値を「List関数」に入れてあげれは、リスト型のデータが得られます。連番をリスト型にしてから、出力してみました。

aについては、引数の「5」と同じ数だけの連番が得られました!ただし、0から始まるので、「5」という数値自体は得られていません。一つ小さい「4」までであることに注意が必要です。
bについては、「開始値以上、終了値未満」の連番が得られましたね。やはり、「開始値は含んで、終了値を含まない」というのがややこしい、、かな😅。
Cについては、開始値を「0」として、5ずつ増えていく数値が得られています。終了値を25としたので、「25」も得られそうな気がしますが、25は含まれてないですよ。
おまけのdですが、Stepの符号をマイナスにしたらどうなるか、を確かめています。0を開始値として、「-1」ずつ「増えて」いきます。つまり、「1」ずつ減っていきます…。終了値を含んでないことは、他と同じですね。
はい、今日はRange関数でした。「開始値は含んで、終了値を含まない」んです。これだけでも覚えて帰っていただければ、このブログを書いた甲斐があるものです😉。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。