Pythonには型の宣言が不要なため、コード中にある変数などのオブジェクトがどの型であるかの明示的な表記がありません。
そのため変数に直接値を代入できるため、扱っている変数の型を調べなければいけない場面がありますが、その際に使用する関数が型を確認するtype関数と、型を判定するのisinstance関数です。
ここでは、type関数と、isinstance関数について基本的な使い方を解説します。
Pythonの型について
「型」とは、文字列だったり整数だったり少数だったりするものをしっかり分けて分類するものを「型」と考えてください。
代表的なデータ型の8つは以下の通りです。
代表的なデータ型
データ型 | 説明 | 記述方法 |
---|---|---|
int型(整数型) | 整数を扱う型 | umaibo = 10 |
float型(小数型) | 小数点の数値を扱う型 | umaibo_length = 12.5 |
str型(文字列型) | 文字列を扱う型 | umaibo = ‘棒はうまい’ |
bool型(真偽型) | 真偽値を扱う型 真は「True」。偽は「False」 |
>>> 10 > 1 >>> True >>> 10 < 1 >>> False |
list型(リスト型) | 配列を扱う型 | umaibo = [‘チーズ味’,’明太子味’,10] |
tuple型(タプル型) | 配列を扱う型 格納した各要素の変更は不可能。 |
umaibo = (‘チーズ味’,’明太子味’,10) |
set型(集合型) | 複数の値を扱う型 順序をつけることが出来ない。 |
umaibo = {‘チーズ味’,’明太子味’,’ピザ味’} |
dict型(辞書型) | キー(key)と値(value)をもつのが辞書型 keyvalueをペアで保存し、キーを使って呼び出す。 |
umaibo = 10 |
PythonはC言語やVBAのように変数を使用する際に変数を事前に宣言したり、データ型の指定が不要です。
Pythonの場合は、型を宣言が不要で変数に代入した値によって型が決定します。
Pythonにおけるデータ型の定義
変数名 = 値
変数名を付けた後に、値を設定して変数に代入されます。
Pythonでは代入した値によって変数のデータ型(数値、文字列etc…)が決定します。
type関数:型を確認(取得)
オブジェクトの型を確認するにはtype関数を使います。
標準組込みの関数ですので、importは必要ありません。
type(型を調べたいオブジェクト)
()内に型を調べたいオブジェクトを代入すると、返り値として型を表示します。
例
変数「umaibo」には文字列の’mentai’を代入し、「kakaku」には数値の10を代入しています。
この2つの型をtype関数で確認するとそれぞれの型が返ってきます。
>>> umaibo = 'mentai'
>>> kakaku = 10
>>> type(umaibo)
<class 'str'>
>>> type(kakaku)
<class 'int'>
文字列「mentai」を代入した変数umaiboをtype型で調べると文字列型である’str’を返してきます。
(strはstring(文字列)の略です。)
数値「10 」を代入した変数kakaku をtype型で調べると整数型である’int’を返してきます。
(Intはinteger(整数)の略です。)
isinstance関数:型を判定
オブジェクトの型を判定する時は、isinstance関数を使用します。
こちらも標準組込みの関数ですので、importは必要ありません。
isinstance(型を判定したいオブジェクト, 型)
第一引数で渡したオブジェクトが第二引数で渡した型と一致するかどうかをブール値(True or False)で返します。
例
>>> kakaku = 10
>>> isinstance(kakaku,int)
True
>>> isinstance(kakaku,str)
False
数値「10 」を代入した変数kakakuは整数型です。
第一引数に整数型変数のkakakuを指定し、第二引数で整数型であるintを指定します。
当然、変数と型が一致しているのでTrueと出力されます。
>>> kakaku = 10
>>> isinstance(kakaku,str)
False
程の例にあった第二引数を文字列型であるstrを指定すれば、
変数と型が一致しないためFalseが出力されます。