イントロダクション
この記事では、Python の range() メソッドについて説明します。
range()` メソッドは Python の for ループで広く使われており、任意のシーケンスを走査したり反復したりするのに使われています。
Python の range() メソッド
range()` は関数というよりも、実際には不変のシーケンス型です。
これは range 型の数値の並びを返します。
Python の range()
関数を使うためのシンタックスは以下の通りです。
range (start, stop[, step])
|
ここで
- start(オプション) は、シーケンスの生成を開始する開始番号です。これはシーケンスに含まれ、言及されない場合、デフォルトで0に設定されます。
- stop は、シーケンス生成を停止する番号です(排他的)。
- step(オプション) は,シーケンス生成時のステップジャンプを指定します.省略した場合、デフォルトで 1 とみなされる。
Python で range() メソッドを使用する
では、実際にPythonの range()
メソッドをどのように使うか、いろいろと見てみましょう。
1. 1つのパラメータを持つ
2つのパラメータ、 step
と start
はオプションで、デフォルトではそれぞれ 1 と 0 に設定されている。
しかし、シーケンスを生成するためには、stop パラメータは必須です。
stop だけが指定された場合、 range()
関数はステップ 1 で 0 から (stop-1) までのシーケンスを作成します。
以下の例を見てください。
#range() with one parameter print ( "Type of object returned by range: " , type ( range ( 5 )))
list1 = list ( range ( 5 ))
print ( "sequence generated by range() with 1 parameter: " , list1)
|
を出力します。
Type of object returned by range : < class 'range' >
sequence generated by range () with 1 parameter: [ 0 , 1 , 2 , 3 , 4 ]
|
見ての通り、このメソッドが生成する配列の型は range
クラスのメンバです。
range()` の出力をタイプキャストすると、0 から 4(5-1) までの値からなり、ステップ 1 を含むリストが得られます。
2. 2つのパラメータを使う場合
同様に、2つのパラメータを指定して range()
メソッドを使用することができます。
この場合、stepパラメータはデフォルトで1に設定されています。
この例では、簡単に説明することができます。
#range() with two parameter list1 = list ( range ( 3 , 7 ))
print ( "sequence generated by range() with 2 parameter: " , list1)
|
結果は以下の通りです。
sequence generated by range () with 2 parameter: [ 3 , 4 , 5 , 6 ]
|
出力から明らかなように、step
は0に設定されている。
3. 3つのパラメータを持つ場合
すべてのパラメータを記載した場合、 range()
関数は start から stop-1 までのシーケンスを生成します。
開始値以降の各要素の値は、前の要素とステップの和として計算されます。
以下の例は、この事実を非常によく表しています。
#range() with three parameter list1 = list ( range ( 3 , 20 , 3 ))
print ( "sequence generated by range() with 3 parameter: " , list1)
|
結果は以下の通りです。
sequence generated by range () with 3 parameter: [ 3 , 6 , 9 , 12 , 15 , 18 ]
|
出力から、シーケンスは3から19(20-1)の範囲の値で生成されていることがわかる。
最後の要素については、18+3=21がstop(20)を超えているため、シーケンスの生成は18で終了している。
Python で for ループで range() メソッドを使用する
先にも述べたように、range()
は for
ループ構造で広く利用されています。
簡単な例を見てみましょう。
#range() with for loop for i in range ( 1 , 5 ):
for j in range ( 1 ,i + 1 ):
print (j , end = "")
print ()
|
出力してみましょう。
1 12 123 1234 |
上のコードでは、内側のループで range(1,i+1)
メソッドによって返されたシーケンスからの数字を各行に持つパターンを表示しようとしています。
外側ループの最後の反復(i=4)では、内側ループは1から(4+1)-1 =4までのjの値について反復します。
従って、出力は正当です。
まとめ
この記事では、Pythonの range()
メソッドの概念を理解しました。
さらに質問がある場合は、下のコメント欄からどうぞ。