Python で数値が整数(浮動小数点数ではない)かどうかを確認する方法

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python で数値が整数 (integer) か浮動小数点数 (float) かを判断する方法を学びます。実験ではまず、整数と浮動小数点数の違いを明確にし、それぞれの主要な特徴を強調し、具体的な例を示します。

次に、数値のデータ型をチェックする 2 つの方法を探ります。1 つは isinstance() 関数を int と組み合わせて使用する方法で、もう 1 つは type() 関数を使って精度を高める方法です。実践的な演習を通じて、整数と浮動小数点数のデータ型を識別し区別する Python スクリプトを作成し、Python でのデータ型検証に対する理解を深めます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/variables_data_types -.-> lab-559545{{"Python で数値が整数(浮動小数点数ではない)かどうかを確認する方法"}} python/numeric_types -.-> lab-559545{{"Python で数値が整数(浮動小数点数ではない)かどうかを確認する方法"}} python/type_conversion -.-> lab-559545{{"Python で数値が整数(浮動小数点数ではない)かどうかを確認する方法"}} python/build_in_functions -.-> lab-559545{{"Python で数値が整数(浮動小数点数ではない)かどうかを確認する方法"}} end

整数と浮動小数点数の区別

このステップでは、Python の 2 つの基本的なデータ型である整数 (integer) と浮動小数点数 (float) の違いを学びます。これらの違いを理解することは、正確な計算やデータ操作を行うために重要です。

整数 (int)

整数は、小数点のない正または負の整数です。例としては、-3、0、5、100 などがあります。

浮動小数点数 (float)

浮動小数点数は、小数点を含む数値です。また、科学表記法で表される数値も表現できます。例としては、-2.5、0.0、3.14、1.0e5(これは 100000.0 を表します)などがあります。

では、これらのデータ型を調べる Python スクリプトを作成して始めましょう。

  1. LabEx 環境で VS Code エディタを開きます。

  2. ~/project ディレクトリに datatypes.py という名前の新しいファイルを作成します。

    touch ~/project/datatypes.py
  3. エディタで 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))
  4. datatypes.py ファイルを保存します。

  5. ターミナルで python コマンドを使用してスクリプトを実行します。

    python ~/project/datatypes.py

    以下の出力が表示されるはずです。

    Integer: 10 Type: <class 'int'>
    Float: 10.0 Type: <class 'float'>

    この出力から、integer_numberint 型で、float_numberfloat 型であることが明確にわかります。

  6. では、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))
  7. datatypes.py ファイルを保存します。

  8. 再度スクリプトを実行します。

    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 つの引数を取ります。

  • チェックしたい変数。
  • チェックするデータ型(例:intfloatstr)。

変数が指定された型である場合は True を返し、そうでない場合は False を返します。

前のステップの datatypes.py ファイルを変更して、isinstance() 関数を追加しましょう。

  1. VS Code エディタで datatypes.py ファイルを開きます。

  2. ファイルに以下のコードを追加します。

    ## 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)
  3. datatypes.py ファイルを保存します。

  4. ターミナルで 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 ファイルの変更を続けましょう。

  1. VS Code エディタで datatypes.py ファイルを開きます。

  2. ファイルに以下のコードを追加します。

    ## 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))
  3. datatypes.py ファイルを保存します。

  4. ターミナルで 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 型であることがわかりました。