type()を使う
Pythonの学習を進めるうえで、「今扱っている値がどんな型なのか」 を正しく理解することは非常に重要です。 そのための基本ツールが type() です。 初心者のうちは「型を意識せずにコードを書いてしまう」ことが多く、それが思わぬエラーやバグにつながります。 type() を使いこなすことで、データの正体を確実に把握し、安全で読みやすいコードが書けるようになります。
ここでは、type() の使い方をステップバイステップで丁寧に解説し、例題・テンプレートを交えて実務レベルで使えるように説明します。
type()とは何か
type() は、値の型(データタイプ)を返す関数です。
type(10) # <class 'int'>
type("hello") # <class 'str'>
type([1, 2, 3]) # <class 'list'>
PythonPythonは「型によってできることが違う」ため、型を知ることは非常に重要です。
ステップバイステップで理解する type()
ステップ1:基本的な使い方
value = 100
print(type(value)) # <class 'int'>
Pythonステップ2:文字列の型を確認
text = "Python"
print(type(text)) # <class 'str'>
Pythonステップ3:リストや辞書の型を確認
items = [1, 2, 3]
print(type(items)) # <class 'list'>
user = {"name": "Taro", "age": 20}
print(type(user)) # <class 'dict'>
Pythonステップ4:None の型を確認
print(type(None)) # <class 'NoneType'>
Python初心者がよく驚くポイントですが、None は特別な型(NoneType)を持っています。
type() が役立つ場面(実務で頻出)
① ユーザー入力の型チェック
age = input("年齢を入力してください: ")
print(type(age)) # <class 'str'>
Pythoninput() は必ず文字列を返すため、数値として使うには型変換が必要です。
② APIレスポンスの型確認
data = {"price": "100.5"}
print(type(data["price"])) # <class 'str'>
PythonAPIは数値を文字列で返すことが多いため、型チェックは必須です。
③ デバッグ時の確認
print(type(result))
Python「思った型と違う」ことがバグの原因であることは非常に多いです。
type() と isinstance() の違い(重要)
type() は「完全一致の型」を調べる
type(10) == int # True
Pythonisinstance() は「その型のサブクラスも含めて判定」
isinstance(True, int) # True(bool は int のサブクラス)
Python深掘り:なぜ isinstance() が便利なのか
Pythonでは継承によって型が広がるため、 「その型かどうか」を柔軟に判定できる isinstance() が実務でよく使われます。
type() を使った安全なコード(セキュリティ視点)
① 外部入力の型を必ず確認する
if type(user_input) is not str:
raise ValueError("文字列を入力してください")
Python② 型が違うと危険な処理を防ぐ
if type(price) is not float:
print("価格が不正です")
Python③ JSONレスポンスの型チェック
if type(response.get("items")) is not list:
print("不正なデータ形式です")
Python型チェックは「予期しないデータによる脆弱性」を防ぐために非常に重要です。
初心者がつまずくポイント(深掘り)
① type() の結果は「文字列ではない」
type(10) == "int" # ❌
Python② None の型は NoneType
type(None) # <class 'NoneType'>
Python③ input() の型は必ず str
type(input()) # <class 'str'>
Python④ bool は int のサブクラス
type(True) # <class 'bool'>
isinstance(True, int) # True
Pythontype() テンプレート(そのまま使える)
型を確認する基本テンプレート
print(type(value))
Python型が一致するか確認
if type(value) is int:
...
Python型が一致しない場合の処理
if type(value) is not list:
raise TypeError("リストを渡してください")
Pythonデバッグ用テンプレート
print("value:", value, "type:", type(value))
Python実践例
例1:ユーザー入力の型チェック
age = input("年齢: ")
if type(age) is not str:
print("文字列ではありません")
Python例2:APIレスポンスの検証
data = api.get_data()
if type(data.get("items")) is not list:
print("不正な形式です")
Python例3:関数の戻り値チェック
result = func()
if type(result) is NoneType:
print("結果がありません")
Pythonまとめ
- type() は「値の型を調べる」ための基本関数
- デバッグ・入力チェック・API処理など実務で頻繁に使う
- None の型は NoneType
- 値の型を意識することでバグや脆弱性を防げる
- isinstance() と使い分けることで柔軟な型判定が可能
type() を使いこなすことで、Pythonのデータ構造を正しく理解し、安全で読みやすいコードが書けるようになります。
