見出し画像

【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関数でした。「開始値は含んで、終了値を含まない」んです。これだけでも覚えて帰っていただければ、このブログを書いた甲斐があるものです😉。

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。






この記事が気に入ったらサポートをしてみませんか?