【Python入門】type()関数の使い方:変数の型を確認する便利ツール

こんにちは。ゆうせいです。

Pythonを学びはじめた新人エンジニアの皆さんにとって、変数の「型(かた)」を理解することはとても大切なステップです。

Pythonは動的型付け(どうてきかたづけ)の言語なので、「変数に型を明示しない」ですよね。

でもその分、「この変数、何の型だっけ?」と混乱することがよくあります。

そこで登場するのが、今回の主役 type() 関数 です!


type() 関数とは?一言で言うと…

変数や値の「型(データの種類)」を調べるための関数です。

Pythonには「整数」「文字列」「リスト」「辞書」など、いろんなデータ型(data type)がありますが、type() を使えば、それがすぐにわかります!


さっそく例で見てみましょう!

x = 10
print(type(x))  # <class 'int'>

このコードの出力は:

<class 'int'>

つまり、x の型は int整数型だということがわかります。


いろんなデータ型を type() でチェックしてみよう

type() の結果
整数42<class 'int'>
小数3.14<class 'float'>
文字列"Hello"<class 'str'>
真偽値True<class 'bool'>
リスト[1, 2, 3]<class 'list'>
辞書{"name": "Taro"}<class 'dict'>
タプル(1, 2)<class 'tuple'>
セット{1, 2, 3}<class 'set'>

こうして見ると、Pythonの型はすべて「クラス(class)」として定義されていることがわかりますね。


実践的な使い方:if文と組み合わせる

たとえば、「変数が文字列かどうか」を確認して処理を分けたいときは、こんなふうに書きます。

x = "こんにちは"

if type(x) == str:
    print("これは文字列です")
else:
    print("これは文字列ではありません")

type() を使うときの注意点

✔ クラスの継承には isinstance() の方が便利なことも

たとえば、親クラスと子クラスの関係があるとき、type()正確な型しか返さないので、派生関係を見たい場合は isinstance() を使うほうが良いです。

class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()
print(type(d) == Animal)       # False
print(isinstance(d, Animal))   # True ← こちらの方が柔軟

まとめ:type() でできること

項目説明
目的変数や値の型を確認する
使い方type(値)またはtype(変数)
出力<class '型名'>の形で返る
注意点継承関係を見るときはisinstance()が向いている

今後の学習の指針

Pythonでは「変数の型を明示しない」自由さがありますが、その分自分で型を意識する習慣が大事になります。

今後は以下のことにチャレンジしてみましょう!

  • いろんな型のデータを type() で調べてみる
  • 条件分岐(if)で型に応じた処理を書いてみる
  • isinstance() との違いを試してみる
  • 型ヒント(x: int = 10 のような)と併用して、静的解析にも強いコードを書く練習をする

「型を意識する」ことは、バグの予防と読みやすいコード作成の第一歩です!

どんどん実験して、Pythonの型と仲良くなっていきましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。