range関数の使い方です。
range関数を使うと、連続した数の簡単に扱うことができるので、for文で特定の回数を繰り返すループ処理に使われます。
range型の表示
range関数で連続した数を作ると、range型のオブジェクトが返ってきます。
range型のオブジェクトの内容は、list関数に入れて表示します。
list型で連続した数を作成
list型で連続した数を作成すれば、range関数を同じデータとなりますが、入力に手間がかかるのと、メモリをたくさん使うことになります。
# range型 sample_1 = list(range(3)) # [0, 1, 2] # list型 sample_2 = [0, 1, 2]
range関数のパラメーター(引数)
range(start, stop[, step])
start、stop、stepと、3つのパラメーターが設定できます。
パラメーターは、整数(int)を使用します。
浮動小数点数(float)で設定するとエラーになります。 # 1.0や0.5はエラー
start | 開始の値(整数) | デフォルト: 0 省略ができる |
stop | 終了の値(整数) | 必須 |
step | 連続する値の間隔(整数) | デフォルト: 1 省略ができる |
stepが正の場合
rangeの内容は、r[i] = start + step * i
制約条件は、i >= 0 かつ r[i] < stop
注意する点は、stopで設定した値は、rangeには含まれません。
stepが負(逆から)の場合
rangeの内容は、正の場合と同じで、r[i] = start + step * i
制約条件は、i >= 0 かつ r[i] > stop
注意する点は、stopで設定した値は、rangeには含まれません。
for文で繰り返し処理
range関数は、for文で繰り返し処理する回数の指定に使用します。
range関数で繰り返し
# 3回の繰り返し In [9]: for i in range(3): # [0, 1, 2] print(i) Out[9]: 0 1 2
for文は、range(3)の内容[0, 1, 2]から値を1つずつ取り出します。
ここでは取り出した値を表示する処理が、range(3)の値の個数だけ繰り返されています。
繰り返し処理の回数の、range関数の値の個数のため、range(1, 4)でも3回の処理されます。
# 3回の繰り返し In [9]: for i in range(1, 4): #[1, 2, 3] print(i) Out[9]: 1 2 3
リスト(配列)の要素数で繰り返し
range関数は、リスト(配列)と組み合わせてfor文に使用します。
In [10]: name = ['ポ', 'テ', 'サ', 'ラ'] for i in range(len(name)): print(name[i]) Out[10]: ポ テ サ ラ
リスト型のnameには、文字列が4つ入っています。
len関数は、リストのサイズを取得する関数なので、len(name)から4を取得できます。
len(name)は、range関数の中にあるので、range(4)となります。
for文は、range(4)の内容[0, 1, 2, 3]から値を1つずつ取り出します。
i = 0: print(name[0]) → name[0]: ポ
i = 1: print(name[1]) → name[1]: テ
i = 2: print(name[2]) → name[2]: サ
i = 3: print(name[3]) → name[3]: ラ
リスト型nameの値を、1文字ずつ表示することができました。
これは、range関数のサイズで繰り返しの回数を指定し、range関数の値でリスト(配列)の要素を指定しています。
まとめ
- range関数を使って、連続する数を作ることができました
- for文と組み合わせて、繰り返し処理の回数を指定することができました
- len関数と組み合わせて、リストのサイズで、連続する数を作ることができました