Python で変数の型をチェックする

  1. Python の変数とそのタイプ
  2. Python で変数の型を調べる
  3. Python で変数の型を調べるには type() 関数を使用する
  4. isinstance() 関数を使用して、Python で変数の型を確認する

Python では、何らかのデータを保存したり、そのデータに対して何らかの操作をしたり、関数やオブジェクト間でデータを渡したりしたい場合、まずそのデータをどこかに保存しなければなりません。これは変数の助けを借りて行われます。

Python の変数とそのタイプ

変数とは、データが格納される箱や容器に他なりません。変数は、メモリ(RAM)内のいくつかのスペースに割り当てられます。データタイプは、変数がどのようなデータを保持しているかを教えてくれます。そして、データの種類に応じて、コンパイラはメモリ内のその変数にどのくらいのスペースを割り当てるかを決定します。そして、それに応じてメモリを割り当てます。

Python では、C/C++ や Java などの主要なプログラミング言語のように、変数に格納するデータの種類を明示的に定義する必要はありません。ここでは、変数に直接値を代入することができ、コンパイラはその変数がどのようなデータ型を保持しているか、整数、文字列、リストなどのどのクラスに属しているかを識別します。

# Variable of type String
newVariable = "This is a new variable"
print(newVariable)

# Variable of type Boolean
booleanVariable = True
print(booleanVariable)

# Variable of type Float
floatVariable = 20.30
print(floatVariable)

出力:

This is a new variable
True
20.3

Python で変数の型を調べる

変数は Python のデータ型のどれからでも構いませんが、以下にその全てを示します。

  1. 数値:このカテゴリには、整数、浮動小数点数、複素数が含まれます。
  2. 文字列:Unicode の文字列です。Unicode とは、世界中のすべての言語の文字と記号を含む文字セットのことです。
  3. ブール値:ブール値は True または False を表します。
  4. リスト:さまざまなデータ型の要素を順番に並べたコレクションです。リストは突然変異可能であり、リストが作成された後にリスト内の値を変更できることを意味します。
  5. タプル:これもまた、異なるデータ型の要素の順序付きコレクションです。リストとタプルの唯一の違いは、タプルは不変であるということです。
  6. セット:セットとは、一意な項目の順序付けられていないコレクションです。
  7. 辞書:辞書は、キーと値のペアの無秩序なコレクションです。キーと値は任意の型をとることができます。

Python で変数の型を調べる方法は 2つあります。

Python で変数の型を調べるには type() 関数を使用する

変数の型を調べるには、変数を入力として受け取る type() 関数を使用することができます。この関数の中では、変数名か値そのものを渡さなければなりません。そして、変数のデータ型を返します。

myInt = 50
print(type(myInt))

myFloat = 10.50
print(type(myFloat))

myString = "My name is Adam"
print(type(myString))

出力:

<class 'int'>
<class 'float'>
<class 'str'>

isinstance() 関数を使用して、Python で変数の型を確認する

変数の型を調べるのに使えるもう一つの関数は isinstance() です。1つ目のパラメータは変数(データ型を調べたい値)、2つ目のパラメータは変数の型です。変数の型が 2 番目のパラメータで指定した型と同じであれば True を、そうでなければ False を返します。

# A variable 'myVar' having a value 50 inside 
myVar = 50

# Printing the value returned by isinstance() function
print("Does myVar belongs to int: ",isinstance(myVar, int))

# This will return false
# As the value passed is string and you are checking it with int
print("Does string belongs to int: ",isinstance("My String", int))

complexNo = 1 + 2j 
print("This this number complex: ",isinstance(complexNo, complex))

出力:

Does myVar belongs to int: True
Does string belongs to int: False
This this number complex: True

関連記事 - Python Variable

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