Pythonのrange関数の使い方について書いています。
その後にrange関数を使って、5パターンのコードを書いて挙動を確認してみました。
載せているコードはPythonのバージョン3.10.5で確認しました。
range関数の使い方
range関数を使うと、渡した引数で作成したrange型のオブジェクトを返してくれます。
このオブジェクトは、for文を使って指定回数のループをさせるときに使われることがよくあります。
例えば、下記のように使います。
for i in range(5):
print(i)
こうすると、range関数に指定した回数ループさせることができます。
今回は「5」なので、5回ループします。
変数i
には0から4までの数値が、処理が繰り返されるたびに格納されます。
ループ内の処理ではprint関数で変数i
の値を出力しているだけです。
ループするたびに出力されて、結果は下記のようになります。
0
1
2
3
4
引数と返り値
range関数の引数と返り値について書いています。
引数
引数として、繰り返す数の終了値(上限)が必須になります。
終了値以外に開始値と、ステップ値を指定することができます。
日本語で表すと、下記のようになります。
range([開始値],[終了値],[ステップ値])
それぞれ指定できる値の意味は下記です。
パラメータ | 説明 |
---|---|
開始値 | カウントを開始する値。引数が与えられてない場合はデフォルトで「0」になる。 |
終了値 | カウントの終了値。必須の値になる。 |
ステップ値 | カウントのステップ値。引数が与えられてない場合はデフォルト「1」になる。 |
終了値のみが必須で、開始値とステップ値は指定されてなければデフォルト値が設定されます。
終了値はないと下記のように、引数が足りないというエラーになるので、必ず指定します。
TypeError: range expected at least 1 argument, got 0
記事の後半で、開始値とステップ値を指定して挙動を確認しているので、参考にしてみてください。
返り値
range型のオブジェクトを返してくれます。
type関数で確認すると、下記のようにrangeオブジェクトが返ってきています。
test = range(10)
print(type(test)) # <class 'range'>
range関数のサンプル5パターン
range関数を使って、コードを書いて挙動を確認してみました。
rangeオブジェクトからリストを作る
range関数を使って、リストを作成することができます。
my_range = range(5)
number_list = list(my_range)
print(number_list) # [0, 1, 2, 3, 4]
最初にrange関数を使って、my_range変数にオブジェクトを受け取りました。
終了値が「5」なので、範囲は0から4までになります。
次の処理で、list関数に受け取ったオブジェクトを渡しています。
これで、渡したrangeオブジェクトの範囲で、リストを作成することができます。
受け取ったリストを出力すると「[0, 1, 2, 3, 4]」になりました。
inで指定値がrangeに含まれているか確認する
指定した値が含まれているかinを使って確認することができます。
my_range = range(5)
if 4 in my_range:
print('4は含まれています。')
if 5 in my_range:
print('5は含まれています。')
最初にrange関数を使って、範囲が0から4までのmy_rangeオブジェクトを作成しました。
次の処理で、inを使っています。
my_rangeは0〜4の値が含まれているので、「4」が入っているかif文で確認するとTrueになります。
そのため「4は含まれています。」が出力されます。
その後に「5」が入っているかif文で確認しています。
「5」は含まれていないため「5は含まれています。」は出力されません。
開始値を指定する
range関数に開始値を指定してみました。
for i in range(3, 6):
print(i)
開始値が「3」で、終了値が「6」です。
「3」から始まって、「6」までで終わります。
そのため、出力結果は下記のようになります。
3
4
5
ステップ値を指定する
range関数にステップ値を指定してみました。
ステップ値まで指定するときには、開始値も指定する必要があります。
for i in range(0, 10, 2):
print(i)
開始値が「0」で、終了値が「10」、ステップ値が「2」です。
「0」から[10]まで繰り返されて、「2」ずつカウントが上がっていきます。
そのため、出力結果は下記のようになります。
0
2
4
6
8
rangeオブジェクトの開始値・終了値・ステップ値が知りたい
range関数で作成したオブジェクトにアクセスして、「開始値・終了値・ステップ値」を取得することができます。
my_range = range(1, 10, 2)
print(my_range.start)
print(my_range.stop)
print(my_range.step)
開始値が「1」、終了値が「10」、ステップ値が「2」のmy_rangeオブジェクトを作りました。
その後にオブジェクトのstartプロパティにアクセスしています。
これで開始値が取得できます。
同じようにして、stopプロパティで終了値、stepプロパティでステップ値が取得できます。
それぞれを出力してみると、下記のように設定した値が取れました。
1
10
2
おわりに
最後にまとめです。
今回はPythonのrange関数を使ってみました。
指定した範囲のrangeオブジェクトを作成して、for文のループで使うことができました。
指定値については、開始値・終了値・ステップ値の順番で指定ができました。
また、ひとつの引数の場合には終了値を指定しました。
このときのデフォルトは開始値が「0」、ステップ値が「1」になりました。
指定する順番やデフォルト値に気をつけて使うようにしていきましょう。
コメント