Pythonのrange()メソッドを理解する

スポンサーリンク
スポンサーリンク

イントロダクション

この記事では、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つのパラメータ、 stepstart はオプションで、デフォルトではそれぞれ 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() メソッドの概念を理解しました。

さらに質問がある場合は、下のコメント欄からどうぞ。

タイトルとURLをコピーしました