【python入門者必見!】1からわかるrange関数の徹底解説 | プログラミング入門ならWEBCAMP NAVI
【11月枠も残りわずか】転職保証コース

【python入門者必見!】1からわかるrange関数の徹底解説

python

今回はループ処理を効率的に行えるrangeについての解説記事となります。
プログラミングを学習しているとどの言語でもループ処理を行うものがあります。

Pythonにもfor文とwhile文があり、プログラマーになる上で非常に重要な知識の1つです。

そこで今回はfor文とセットで使うことで、ループ処理を効率よく行えるrangeについて解説していきます。

rangeの基本的な使い方

rangeの基本的な使い方から解説をしていきます。

rangeは連続する数値型のデータを作ることができ、主にfor文とセットで使用されます。

rangeの記述方法

rangeの基本的な記述方法は、下記になります。


range(開始,終了,増加量)

rangeの引数の内、開始と増加量については省略することが可能です。

rangeの使用例

rangeのもっともシンプルな使用例について、解説していきます。


#繰り返し回数をカウント変数
count_tmp = 1

#rangeを使用して5回処理を繰り返す。\
for x in range(5):
#繰り返し回数をprint出力
    print("実行回数:" + str(count_tmp) + "回目")
    count_tmp = count_tmp + 1

#実行結果

実行回数:1回目
実行回数:2回目
実行回数:3回目
実行回数:4回目
実行回数:5回目

上記使用例では、rangeの引数に5だけにすることで、開始と増加量を省略しています。

rangeの終了を「5」にした場合は、xが「0」からfor文のループを実行する度に1ずつ増加し、5になるまで処理を繰り返します。

5になった時点でループ処理が終了する為、注意が必要です。

rangeの範囲指定

rangeで範囲を指定する場合は、開始と終了または終了のみを指定することで範囲指定することが出来ます。

開始と終了の引数を指定した場合の使用例は、下記になります。


#range引数を開始5、終了11にした場合の使用例

for x in range(5,11):
    print("現在のrange : " + str(x))

#実行結果
現在のrange : 5
現在のrange : 6
現在のrange : 7
現在のrange : 8
現在のrange : 9
現在のrange : 10

実行結果からもわかるように、仕様上、rangeの終了値の1つ前までしかfor文が実行されない為、注意が必要です。

使用例のように10まで実行したい場合は、11のように+1した数値値を終了値に設定する必要があります。

rangeのstep指定

rangeのstepを指定することで、増加量を設定することが出来ます。

setpを指定することで、偶数回だけまたは奇数回だけ実行することが可能です。

stepを指定する使用例は、下記になります。


#rangeの開始を1、終了を20、stepを2

for x in range(1,20,2):
    print("現在のrange : " + str(x))

#実行結果

現在のrange : 1
現在のrange : 3
現在のrange : 5
現在のrange : 7
現在のrange : 9
現在のrange : 11
現在のrange : 13
現在のrange : 15
現在のrange : 17
現在のrange : 19

実行結果の出力内容から1~20までの奇数だけを取り出されています。

開始値と終了値、増加値を設定することで、目的に合わせて効率よく使用することができます。

Python2系のxrangeについて

ここまででご解説したrangeはPython3系で使用する物になります。

Python2系でrangeを使用する場合は、xrangeを使用します。

xrangeの記述方法

Python2系でxrangeを使用する基本的な記述方法は、下記になります。


xrange(開始,終了,増加量)

rangeと基本的には、同じ記述方法で使用することができます。

 

xrangeの使用例

xrangeの具体的な使用例は、下記になります。


#rangeを使用して5回処理を繰り返す。

for x in xrange(1,6):
#繰り返し回数をprint出力
    print("xrange実行:" + str(x) + "回目")

#実行結果

xrange実行:1回目
xrange実行:2回目
xrange実行:3回目
xrange実行:4回目
xrange実行:5回目

xrangeでも、rangeの解説例と同じ実行結果になります。

実行する環境に合わせて使い分けるように注意しておけば基本的には問題ありません。

listを利用した方法

冒頭で解説しましたが、rangeはfor文やwhile文のループ処理以外にもlist配列と合わせて使用することでも、効率よく要素を追加することができます。

rangeを使用してlist配列を使用する使用例について、ご紹介していきます。

 

1から順番にlistへ追加する使用例

list配列にrangeを使用して要素を追加する使用例について、ご紹介します。

使用例は、下記になります。


#list関数を使用して1~10の要素を追加
list_tmp = list(range(1,11))

#list関数を使用して1~10の奇数要素のみを追加
list_tmp2 = list(range(1,11,2))

#printで要素内容を確認
print(list_tmp)
print(list_tmp2)

#実行結果

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]

実行結果からlist_tmp配列に1~10までの要素が追加されていることがわかります。

またlist_tmp2では、奇数だけを要素に追加することが出来ています。

rangeを使わない場合は、1つずつの要素を指定してlist配列に追加しないといけませんが、rangeを使用できれば簡単に効率化可能となります。

逆順からlistへ追加する使用例

rangeを使用してlist配列に要素を追加することが出来ることは、上記で解説しましたが、stepを指定することで逆順で要素を追加することも出来ます。

逆順からlistへ要素を追加する使用例は、下記になります。


#list関数を使用して1~10の要素を逆順に追加
list_tmp = list(range(10,0,-1))

#print出力で要素内容を確認
print(list_tmp)

#実行結果
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

rangeのstepを-1に指定することで、逆順にlist配列へ要素を追加することが出来ます。

rangeで小数点を利用する方法

range自体は、標準では小数点を使用することはできません。

しかし数値計算とfor文などを活用することで、実現することが可能です。

rangeを活用して小数点を利用する方法について、解説していきます。

小数点を利用した記述方法

rangeで小数点を利用する場合には、下記のように数値計算で小数点に変換する必要があります。

下記記述方法は、list配列をrangeで使用する場合の基本的な記述方法です。


list配列の宣言

for x in range(range引数):
    list配列.append(x * 0.1)

小数点を単純に出力したい場合は、list配列を準備しないでそのままprint出力することも可能です。

この記述方法については、rangeで小数点を使用する場合の一例だと認識して頂ければ幸いです。

小数点を利用した使用例

それでは具体的な小数点の使用例について、下記になります。

#空のlist配列を宣言
tmp = []
#rangeを使用してfor文でループ処理
for x in range(10):
    #rangeの値に0.1を乗算して配列に要素を追加
    tmp.append(x * 0.1)
#print出力で配列内容を確認
print(tmp)

#実行結果

[0.0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9]

実行結果から小数点に変換してlist配列に追加されていることがわかります。

ただし注意しなければいけない点は、小数点を扱う場合は、そのまま0.1を乗算してしまうとズレが発生してしまい上記の様な実行結果になってしまいます。

正常に出力する場合は、別途ライブラリなどをインポートして使用する必要があります。

まとめ

今回はPythonのrangeについて、解説をしてきましたが、いかがでしたか。

rangeは他のプログラミング言語全てに準備されている物ではありません。

rangeを使用しなくてもシステムを開発することは可能です。

しかしrangeはPythonではシンプルかつ効率の良いプログラミングが出来る特徴が出ている部分の1つになります。

今回の解説でもあるように、rangeを使用するのとしないのでは、コーディングの効率に大きな差があります。

是非今回の内容を参考にして頂き、rangeの特性や使用方法を習得して頂ければと思います。

11月枠も残りわずか!!

エンジニア転職を目指すなら…

転職保証付きプログラミングスクール

で未経験からエンジニア目指そう

 

✔︎未経験からの転職 ✔︎会社の将来が不安 ✔︎給与や待遇に不満がある

 

転職保証コースは質の高いカリキュラムで転職成功率98%