ある一定の範囲の数値をまとめて指定することができる便利なrange関数の使い方について、実例を用いてわかりやすく解説しています。
引数が1つ、2つ、3つの場合で何が違うのか?rangeで作成した値を取り出すにはどうしたらいいか?for文の中での使い方や、
指定した範囲に値がない場合にどうなるか?エラーが発生するのはどういう状況か?についてまとめています。
range関数でできること
■指定した範囲にある数値を一つの組として算出できる。
例:「初期値:0、範囲の終わり:9、変化量:1」という3つの情報から、「0,1,2,3,4,5,6,7,8」という9つの要素を返す。
※範囲の終わりの数値は含まない(未満となる)。その値に達したら終了という意味。
■初期値と変化量は省略可。
例:「範囲の終わり:5」という1つの情報から、「0,1,2,3,4」という5つの要素を返す。
range関数の基本構文
range(x, y, z)
- 使う要素は3つだけ
- 「x」:初期値。省略可。デフォルト0
- 「y」:範囲の終わり。省略不可。
- 「z」:変化量。省略可。デフォルト1
- 範囲の終わりは未満。
- 指定した数値は含まれない。
- その値に達したら終了という意味。
- 要素は整数
- マイナスも使える
- 小数点(float)は使えない
- 要素は「整数」「変数」どちらも使える
- 要素は最低1つ
- 範囲の終わりのみ指定。(上記では変数「z」)
- 出力はrange型
- range関数を実行するだけでは中身を見れない
- 指定範囲に該当するデータがない場合は、出力は空になる(エラーにはならない)
要素の数で分類
以下の3つの記述が使える。
①range(y)
:要素1つ
②range(x,y)
:要素2つ
③range(x,y,z)
:要素3つ
■python公式の説明(URL)
range(stop)
range(start, stop[, step])
・stop:範囲の終わりを指定する整数(or変数)。
・start:初期値を指定する整数(or変数)。
・step:変化量を指定する整数(or変数)。
range型とは?
range関数の出力結果。指示内容が確認できる。
変化量を指定しない場合は、「初期値」と「範囲の終わり」の2つの数値を返す。
※「初期値」を省略していても0が表示される。
変化量も指定した場合は「初期値」「範囲の終わり」「変化量」の3つの数値を返す。
▼終わり値のみ指定した場合のrange型出力結果終わり値のみ指定(int)
range(10)
#出力結果
# range(0, 10)
終わり値のみ指定(変数)
a = 10
range(a)
#出力結果
# range(0, 10)
▼初期値と変化量も指定した場合のrange型出力結果初期値も指定(int)
range(5,99)
#出力結果
# range(5, 99)
初期値と変化量も指定(int)
range(5,99,11)
#出力結果
# range(5,99,11)
初期値と変化量も指定(変数)
a = 5
b = 99
c = 11
range(a,b,c)
#出力結果
# range(5,99,11)
range関数の実行結果の中身を確認する方法(一例)
range型ではどんな数値が格納されているのかわからない。中身をサクッと確認する方法。
①listにする
②配列番号を指定する
③for文で取り出す
listにする
list型(例1)
list(range(10))
#出力
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list型(例2)
a = range(10)
list(a)
#出力
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list型(例3)
a = 5
b = 99-10
c = 3*4
list(range(a,b,c))
#出力
# [5, 17, 29, 41, 53, 65, 77]
配列番号を指定する
配列番号を指定
range(3,9)[4]
#出力
# 7
range(3,9)
の出力は[3, 4, 5, 6, 7, 8]
4番目(0から数えて)は7になる。
for文で取り出す
for文とprintメソッドを使えば、中身を1つずつ出力できる。for文で取り出す(例1:要素1つ)
for a in range(5):
print(a)
#出力
0
1
2
3
4
for文で取り出す(例2:要素2つ)
for b in range(4,8):
print(b)
#出力
4
5
6
7
for文で取り出す(例3:要素3つ)
for c in range(9,30,7):
print(c)
#出力
9
16
23
for文で取り出す(例4:変数)
A =range(9,30,7)
for a in A:
print(a)
#出力
9
16
23
マイナスを使う
初期値や範囲、変化量にマイナスを使うこともできる。(指定した数値ずつ減らす)初期値マイナス(例1)
list(range(-3, 2))
#出力
# [-3, -2, -1, 0, 1]
初期値・終わり値マイナス(例2)
list(range(-12, -6))
#出力
# [-12, -11, -10, -9, -8, -7]
「初期値<終わり値」(変化量がプラスの場合。デフォルト「+1」)
範囲内に数値がない場合は中身が空になる(エラーではない)変化量マイナス(例3)
a =range(5,1,-1)
list(a)
#出力
# [5, 4, 3, 2]
変化量マイナス・変数で指定(例4)
a = 10
b = -4 * 4
c = -6
A = range(a,b,c)
list(A)
#出力
# [10, 4, -2, -8, -14]
範囲内に要素がない場合
データが空になるだけ。エラーにはならない。プラスの範囲(例1)
list(range(10,5))
#出力
# []
マイナスの範囲(例2)
list(range(-5, -10))
#出力
# []
変化量マイナス(例2)
list(range(-5, 10, -2))
#出力
# []
エラー発生事例
小数点(float)
エラー:小数点(float)
range(1.25)
#出力
# TypeError: 'float' object cannot be interpreted as an integer
文字列(str)
エラー:文字列(str)
range("AAA")
#出力
# TypeError: 'str' object cannot be interpreted as an integer