【Python】range関数の使い方をパターン別に実例で解説(引数の数による違いやエラーの発生要因など)

python-how-to-use-range-method Python
記事内に広告が含まれていることがあります。

ある一定の範囲の数値をまとめて指定することができる便利な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
タイトルとURLをコピーしました