Pythonではループ処理をするときよくrange関数を使いますよね.
このrange処理, 実は関数ではなくデータ型と知っていましたか?

今回は意外と知らないrange型について紹介します.
range型の基本形
range型はこのように定義します.
range(start, stop, step)
- start = 初期値
- stop = 終了処理
- step = スキップする値
このうち start と step は省略ができます.
もしrange()の引数が1つの場合は必ずstopを意味しますね.
nums_list_1 = list(range(10))
print(nums_list_1)
nums_list_2 = list(range(1,10))
print(nums_list_2)

似たような引数を入れたにもかかわらずそれぞれ結果が異なりました.
上の処理はstop引数のみ,下の処理はstart引数とstop引数が入っています.
ここで抑えておきたいポイントは3点が挙げられます!
- start引数は省略されると0から始まること
- start引数の値は含まれること
- stop引数の値は含まれないこと
startの値は含まれ,stopの値は含まれないと覚えておきましょう!
range型の特徴
range型は2つの特徴があります.
- イミュータブル(変更不可)であること
- シーケンス(要素が順番に並び,各要素はインデックスを持つ)であること
rangeの戻り値はシーケンスであるためlist関数に入れると配列が作成できます.

続いて色んな引数を入れて処理結果を確認してみましょう!
stepを使うとき
stepを使うと簡単に倍数をリストとして作成できます.
nums = range(0, 31, 5)
print(list(nums))

引数が-(マイナス)のとき
引数がマイナスだとstartから値が小さくなります.
nums = range(-1, -11, -1)
print(list(nums))

まとめ
今回はrange型について紹介しました.
ループ処理で身近なrange()ですが実はデータ型とは知りませんでした.
range型で間違いやすいのはstart, stopの値を含めるのかどうかです.
- startの値は含める
- stopの値は含めない
このポイントを覚えておくとrange型は不自由なく使えるでしょう!