工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python range() 関数:Float、List、For ループの例

Python Range とは

Python range() は、Python(3.x) 以降の Python で使用できる組み込み関数であり、指定された開始インデックスと終了インデックスに基づいて一連の数値を返します。開始インデックスが指定されていない場合、インデックスは 0 と見なされ、終了インデックスまで値が 1 ずつ増加します。

たとえば、range(5) は値 0,1,2,3,4 を出力します。Python の range() は非常に便利なコマンドであり、for ループを使用して反復する必要がある場合に主に使用されます。

このチュートリアルでは、次のことを学びます:

構文

range(start, stop, step)

パラメータ

戻り値:

戻り値は、指定された開始インデックスから終了インデックスまでの一連の数値です。

Python range() 関数と履歴

Python range() は、xrange() が関数になる前に、python バージョン 3 から導入されました。

range と xrange() の両方を使用して、一連の数値を生成します。

range と xrange() の違いは次のとおりです:

range() xrange()
range() は一連の数字を返し、数字のリストを返します。 xrange() 関数は、値を取得するために for ループでループする必要があるジェネレーター オブジェクトを提供します。
range() はリストを返します。 xrange() はジェネレータ オブジェクトを返します。
range() メソッドは、返されるリストを xrange() に比べて保存する必要があるため、より多くのメモリを使用します。 xrange() はジェネレーター オブジェクトを返すため、すぐには値を与えず、値を取得するには for ループ内で使用する必要があります。
メモリの使用量が多いため、膨大なデータ セットを処理する場合、コードの実行が遅くなります。 xrange() を使用すると、コードの実行が高速になります。

range() の使用

この例では、range() を使用して 0 ~ 9 の値を出力する方法を示します。

range で使用される値は 10 なので、出力は 0 1 2 3 4 5 6 7 8 9 です。

start が指定されていないため、start は 0 と見なされ、最後の値は 9 まで指定されます。最後の値は常に、指定された値より 1 少ない値、つまり stop-1 です。

for i in range(10):
    print(i, end =" ")

出力:

0 1 2 3 4 5 6 7 8 9

range() で start と stop を使用する

コードでは、開始値は 3 で、停止値は 10 です。ここでは、開始インデックスが 3 であるため、一連の数字は 3 から停止値まで開始されます。シーケンスの最後の値は、停止値 10-1 =9 よりも 1 少なくなります。

for i in range(3, 10):
    print(i, end =" ")

出力:

3 4 5 6 7 8 9

開始、停止、ステップの使用

開始値が 3 であるため、一連の数字は 3 から始まります。終了値が 10 であるため、一連の数字は (10-1)、つまり 9 で停止します。ステップは 2 であるため、一連の各値は次のようになります。ステップ値が指定されていない場合、ステップの値はデフォルトで 1 になります。

for i in range(3, 10, 2):
    print(i, end =" ")

出力:

3 5 7 9

これまでのところ、 range() 関数が指定されたストップ値に対してインクリメントされた値を与える方法を見てきました。与えられた範囲内で減分された値を取得する例を試してみましょう.

正のステップを使用して範囲内の値を増やします。

range() のパラメーター step を使用して、値を増減できます。デフォルトでは、正の値 1 です。したがって、常に増加する値になります。

インクリメントされた値が出力として必要な場合、ステップ値は正でなければなりません。

for i in range(1, 30, 5):
    print(i, end =" ")

出力:

1 6 11 16 21 26

Reverse Range:負のステップを使用して値を減らします。

range() で負の値を持つパラメーター step を使用して、減分された値を取得できます。以下の例では、ステップ値が負であるため、出力は指定された範囲値から減少します。

for i in range(15, 5, -1):
    print(i, end =" ")

出力:

15 14 13 12 11 10 9 8 7 6

開始値は 15、停止値は 5、ステップ値は負の数、つまり -1 です。上記の入力を使用すると、 range() 関数は値を 15 から stop value に達するまで減少させますが、ここでの違いは、最後の値が stop + 1 になることです。

Python range() での浮動小数点数の使用

浮動小数点数を使用して range() に取り組みましょう。

例:

for i in range(10.5):
    print(i, end =" ")

上記の例では、ストップ値を 10.5 として使用しています。

出力は次のとおりです:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

range() 関数は開始、停止、およびステップの浮動小数点数をサポートしていないため、Python はエラーを返します。

Python range() で for ループを使用する

この例では、数値の配列を使用し、range() を使用して for ループ内で配列を反復処理する方法を見てみましょう

例:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

出力:

MysqlMongodb PostgreSQL Firebase

上記の例では、len(arr_list) を停止値として使用しました。 for ループは、arr_list に 4 つの項目があるため、停止値、つまり配列の長さまで反復し、それは 4 になります。開始値は 0 で、ステップは 1 です。したがって、値は 0 から開始し、3 で停止します。つまり、配列の長さ -1 は 4 -1 =3 を意味します。

Python range() をリストとして使用する

この例では、range からの出力をリストとして利用する方法を説明します。

例:

print(list(range(10)))

出力:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

出力がリスト形式であることがわかります。 range() をループする必要はなく、list() メソッドを使用して、出力を範囲からリスト形式に直接変換できました。

python range() での文字の使用

これまで、python range() で整数を使用してきました。 Python の範囲では浮動小数点数がサポートされていないことも確認しました。文字を使用するとどうなるか、出力を見てみましょう。

例:

for c in range ('z'):
        print(c, end =" ")

出力:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

文字列を整数として解釈できないというエラーがスローされます。

アルファベットのリストを取得するには、コードをカスタマイズして、以下に示すように目的の出力を取得します:

例:

def get_alphabets(startletter, stopletter, step):
    for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
        yield chr(c)

print(list(get_alphabets("a", "h", 1)))

出力:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

範囲要素へのアクセス方法

for ループを使用して範囲から値を取得したり、インデックスを使用して range() の要素にアクセスしたりできます。

for ループの使用

例:

for i in range(6):
    print(i)

出力:

0
1
2
3
4
5

インデックスの使用

インデックスは範囲で使用され、その位置で使用可能な値を取得します。範囲値が 5 の場合、開始値を取得するには、range(5)[0] と次の値 range(5)[1] などを使用できます。

例:

startvalue = range(5)[0] 
print("The first element in range is = ", startvalue) 

secondvalue = range(5)[1] 
print("The second element in range is = ", secondvalue) 

lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)

出力:

startvalue = range(5)[0] 
print("The first element in range is = ", startvalue) 

secondvalue = range(5)[1] 
print("The second element in range is = ", secondvalue) 

lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)

list() の使用

このメソッドは、range() からすべての要素を出力します。 list() を使用すると、range() からの要素がリスト形式で返されます。

例:

print(list(range(10)))

出力:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

指定された範囲のリスト出力を提供します。

例:range() を使用して偶数を取得する

range() を使用すると、入力として指定された範囲内の偶数のリストが取得されます。 range() のパラメータは、start が 2、stop が 20、step が 2 であるため、値は 2 ずつ増加し、stop-2 まで偶数になります。

例:

for i in range(2, 20, 2):
    print(i, end =" ")

出力:

2 4 6 8 10 12 14 16 18

two-range() 出力のマージ

この例では、itertools モジュールの chain() 関数を使用して 2 つの range() 関数を連結します。

例:

from itertools import chain 

print("Merging two range into one") 
frange =chain(range(10), range(10, 20, 1))
for i in frange: 
    print(i, end=" ")

出力:

Merging two range into one
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

NumPy で range() を使用する

NumPy モジュールには、機能する arange() 関数があり、range() と同様の出力が得られます。 Arrange() は、range() と同じパラメーターを受け取ります。

構文:

arange(start, stop, step)

NumPy を使用するには、以下の手順に従います。

ステップ 1 :NumPy モジュールのインポート

import numpy

実行中に numpy モジュールが見つからないというエラーが表示される場合は、手順 2 に示すようにモジュールをインストールする必要があります。

ステップ 2 :NumPy をインストールします

pip install numpy

ステップ 3 :NumPy を使用した arange() の実行例

import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

出力:

0 1 2 3 4 5 6 7 8 9

NumPy arange() を使用した浮動小数点数

range() を使用して浮動小数点シーケンスを取得することはできませんが、NumPy arange() を使用すると可能です。

例:

必要な範囲は 0.5 から 1.5 です。値は 0.2 ずつ増加します。

import numpy as np 

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")        

出力:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

得られる出力は少し奇妙で、一部の浮動小数点数は小数点以下 16 桁で表示されます。これは、10 進浮動小数点数をバイナリ形式に格納する複雑さのために発生します。必要に応じて値を丸め、必要な小数点以下の桁数に制限することもできます。

まとめ:


Python

  1. Python 関数の引数
  2. Python 匿名/Lambda 関数
  3. Python ジェネレーター
  4. Python クロージャー
  5. 例を含む Python Lambda 関数
  6. Python abs() 関数:絶対値の例
  7. 例を使用した Python round() 関数
  8. Python range() 関数:Float、List、For ループの例
  9. 例を使用した Python map() 関数
  10. Python の Enumerate() 関数:ループ、タプル、文字列 (例)
  11. 例を使用した Python List count()