はじめに
この実験では、Python で数値が整数 (integer) か浮動小数点数 (float) かを判断する方法を学びます。実験ではまず、整数と浮動小数点数の違いを明確にし、それぞれの主要な特徴を強調し、具体的な例を示します。
次に、数値のデータ型をチェックする 2 つの方法を探ります。1 つは isinstance() 関数を int と組み合わせて使用する方法で、もう 1 つは type() 関数を使って精度を高める方法です。実践的な演習を通じて、整数と浮動小数点数のデータ型を識別し区別する Python スクリプトを作成し、Python でのデータ型検証に対する理解を深めます。
整数と浮動小数点数を区別する
このステップでは、Python の 2 つの基本的なデータ型である整数 (integer) と浮動小数点数 (float) の違いを学びます。これらの違いを理解することは、正確な計算やデータ操作を行うために重要です。
整数 (int)
整数は、小数点のない正または負の整数です。例としては、-3、0、5、100 などがあります。
浮動小数点数 (float)
浮動小数点数は、小数点を含む数値です。また、科学表記法で表される数値も表現できます。例としては、-2.5、0.0、3.14、1.0e5(これは 100000.0 を表します)などがあります。
では、これらのデータ型を調べる Python スクリプトを作成して始めましょう。
LabEx 環境で VS Code エディタを開きます。
~/projectディレクトリにdatatypes.pyという名前の新しいファイルを作成します。touch ~/project/datatypes.pyエディタで
datatypes.pyファイルを開き、以下の Python コードを追加します。## Assign an integer to the variable 'integer_number' integer_number = 10 ## Assign a float to the variable 'float_number' float_number = 10.0 ## Print the values and their types print("Integer:", integer_number, "Type:", type(integer_number)) print("Float:", float_number, "Type:", type(float_number))datatypes.pyファイルを保存します。ターミナルで
pythonコマンドを使用してスクリプトを実行します。python ~/project/datatypes.py以下の出力が表示されるはずです。
Integer: 10 Type: <class 'int'> Float: 10.0 Type: <class 'float'>この出力から、
integer_numberがint型で、float_numberがfloat型であることが明確にわかります。では、Python がこれらの型をどのように扱うかを確認するために、簡単な算術演算を行いましょう。
datatypes.pyファイルを変更して以下を追加します。## Assign an integer to the variable 'integer_number' integer_number = 10 ## Assign a float to the variable 'float_number' float_number = 10.0 ## Print the values and their types print("Integer:", integer_number, "Type:", type(integer_number)) print("Float:", float_number, "Type:", type(float_number)) ## Add an integer and a float sum_result = integer_number + float_number ## Print the result and its type print("Sum:", sum_result, "Type:", type(sum_result))datatypes.pyファイルを保存します。再度スクリプトを実行します。
python ~/project/datatypes.py以下の出力が表示されるはずです。
Integer: 10 Type: <class 'int'> Float: 10.0 Type: <class 'float'> Sum: 20.0 Type: <class 'float'>整数と浮動小数点数を足すと、結果は浮動小数点数になることに注意してください。これは、Python が精度を維持するために整数を自動的に浮動小数点数に変換するためです。
isinstance() を int と共に使用する
このステップでは、isinstance() 関数を使って変数が整数かどうかをチェックする方法を学びます。この関数は、Python でデータ型を検証するための強力なツールです。
isinstance() 関数は 2 つの引数を取ります。
- チェックしたい変数。
- チェックするデータ型(例:
int、float、str)。
変数が指定された型である場合は True を返し、そうでない場合は False を返します。
前のステップの datatypes.py ファイルを変更して、isinstance() 関数を追加しましょう。
VS Code エディタで
datatypes.pyファイルを開きます。ファイルに以下のコードを追加します。
## Assign an integer to the variable 'integer_number' integer_number = 10 ## Assign a float to the variable 'float_number' float_number = 10.0 ## Print the values and their types print("Integer:", integer_number, "Type:", type(integer_number)) print("Float:", float_number, "Type:", type(float_number)) ## Add an integer and a float sum_result = integer_number + float_number ## Print the result and its type print("Sum:", sum_result, "Type:", type(sum_result)) ## Check if integer_number is an integer is_integer = isinstance(integer_number, int) print("Is integer_number an integer?", is_integer) ## Check if float_number is an integer is_integer = isinstance(float_number, int) print("Is float_number an integer?", is_integer)datatypes.pyファイルを保存します。ターミナルで
pythonコマンドを使ってスクリプトを実行します。python ~/project/datatypes.py以下の出力が表示されるはずです。
Integer: 10 Type: <class 'int'> Float: 10.0 Type: <class 'float'> Sum: 20.0 Type: <class 'float'> Is integer_number an integer? True Is float_number an integer? Falseご覧の通り、
isinstance(integer_number, int)はinteger_numberが実際に整数であるためTrueを返します。isinstance(float_number, int)はfloat_numberが浮動小数点数で整数ではないためFalseを返します。
この関数は、変数のデータ型に基づいて異なるアクションを実行する必要がある場合に特に便利です。たとえば、変数が整数の場合は整数除算を行い、浮動小数点数の場合は浮動小数点除算を行いたい場合があります。
type() を使って精度を確認する
このステップでは、type() 関数を使って Python での数値の精度を理解する方法を探ります。isinstance() が変数が特定の型に属するかどうかをチェックするのに対し、type() は変数の実際の型を返します。これは、Python が異なる数値演算をどのように扱い、その結果の精度がどうなるかを理解するのに役立ちます。
これを実証するために、datatypes.py ファイルの変更を続けましょう。
VS Code エディタで
datatypes.pyファイルを開きます。ファイルに以下のコードを追加します。
## Assign an integer to the variable 'integer_number' integer_number = 10 ## Assign a float to the variable 'float_number' float_number = 10.0 ## Print the values and their types print("Integer:", integer_number, "Type:", type(integer_number)) print("Float:", float_number, "Type:", type(float_number)) ## Add an integer and a float sum_result = integer_number + float_number ## Print the result and its type print("Sum:", sum_result, "Type:", type(sum_result)) ## Check if integer_number is an integer is_integer = isinstance(integer_number, int) print("Is integer_number an integer?", is_integer) ## Check if float_number is an integer is_integer = isinstance(float_number, int) print("Is float_number an integer?", is_integer) ## Perform division with integers division_result = integer_number / 3 print("Division result:", division_result, "Type:", type(division_result)) ## Perform integer division with integers integer_division_result = integer_number // 3 print("Integer division result:", integer_division_result, "Type:", type(integer_division_result))datatypes.pyファイルを保存します。ターミナルで
pythonコマンドを使ってスクリプトを実行します。python ~/project/datatypes.py以下の出力が表示されるはずです。
Integer: 10 Type: <class 'int'> Float: 10.0 Type: <class 'float'> Sum: 20.0 Type: <class 'float'> Is integer_number an integer? True Is float_number an integer? False Division result: 3.3333333333333335 Type: <class 'float'> Integer division result: 3 Type: <class 'int'>以下の点に注目してください。
/演算子を使って 2 つの整数を除算すると、結果が整数であっても結果は浮動小数点数になります。これは、Python が可能な限り正確な結果を提供しようとするためです。//演算子(切り捨て除算)を使うと、結果は整数になり、小数部分は切り捨てられます。
これらの微妙な違いを理解することは、特に数値計算を扱う際に、正確で効率的な Python コードを書くために重要です。
まとめ
この実験では、Python で整数(integer)と浮動小数点数(float)の違いを学びました。整数は小数点のない整数で、浮動小数点数は小数点を含む数です。Python スクリプトを作成して、整数と浮動小数点数の値を変数に割り当て、type() 関数を使ってそれらの値とそれぞれの型を出力しました。出力結果から、整数が割り当てられた変数は int 型で、小数点を含む変数は float 型であることがわかりました。



