Python で変数が整数かどうかを確認する

Manav Narula 2023年10月10日
  1. オブジェクトが Python の int 型で isinstance() メソッドを使用してあるかどうかを確認する
  2. オブジェクトが Python の int 型で int() メソッドを使用してあるかどうかを確認する
  3. オブジェクトが Python の int 型で float.is_integer() メソッドを使用してあるかどうかを確認する
Python で変数が整数かどうかを確認する

Python では、数値を扱うときにさまざまなデータ型があります。これらは、intfloat、および complex データ型です。

int データ型は整数を表すために使用されます。このチュートリアルでは、変数が int であるかどうかを確認する方法について説明します。

Python では、通常、type() 関数をチェックしてオブジェクトの型を返します。例えば、

x = 10
print(type(x))
print(type(x) == int)

出力:

<class 'int'>
True

この方法は正常に機能する可能性がありますが、ポリモーフィズムのすべての柔軟性をブロックします。たとえば、オブジェクトを int としてサブクラス化し、それが int として登録されることを期待している場合、これは type() 関数で失敗する可能性があります。

次のコードはこれを示しています。

class def_int(int):
    pass


x = def_int(0)
print(type(x))
print(type(x) == int)

出力:

<class '__main__.def_int'>
False

オブジェクトが Python の int 型で isinstance() メソッドを使用してあるかどうかを確認する

したがって、従来の type() よりも isinstance() 関数を使用することをお勧めします。isinstance() 関数は、オブジェクトが指定されたサブクラスに属しているかどうかを確認するために使用されます。次のコードスニペットは、それを使用して int オブジェクトをチェックする方法を説明しています。

y = 10


class def_int(int):
    pass


x = def_int(0)
print(isinstance(y, int))
print(isinstance(x, int))

出力:

True
True

具象 int クラスの代わりに、抽象基本クラス numbers.Integral を使用することをお勧めします。このようにして、intlong、さらには整数として機能できるユーザー定義メソッドをチェックできます。

オブジェクトが Python の int 型で int() メソッドを使用してあるかどうかを確認する

int 関数を使用してこれを実現するための単純なロジックを作成することもできます。オブジェクトが int であるためには、このオブジェクトがオブジェクトに渡されたときに int() 関数によって返される値と等しくなければなりません。次のコードはこれを示しています。

x = 10.05

if int(x) == x:
    print("True")
else:
    print("False")

出力:

False

このメソッドは、複雑なオブジェクトを操作するとタイプエラーを返します。

オブジェクトが Python の int 型で float.is_integer() メソッドを使用してあるかどうかを確認する

このメソッドは、float オブジェクトに対してのみ機能します。float オブジェクトの値が整数であるかどうかをチェックします。例えば、

x = 10.0
print(float.is_integer(x))

出力:

True
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Integer