Python 逆引き集 | Python基礎・実行環境:type()を使う

Python Python
スポンサーリンク
スポンサーリンク

type()を使う

Pythonの学習を進めるうえで、「今扱っている値がどんな型なのか」 を正しく理解することは非常に重要です。 そのための基本ツールが type() です。 初心者のうちは「型を意識せずにコードを書いてしまう」ことが多く、それが思わぬエラーやバグにつながります。 type() を使いこなすことで、データの正体を確実に把握し、安全で読みやすいコードが書けるようになります。

ここでは、type() の使い方をステップバイステップで丁寧に解説し、例題・テンプレートを交えて実務レベルで使えるように説明します。

type()とは何か

type() は、値の型(データタイプ)を返す関数です。

type(10)        # <class 'int'>
type("hello")   # <class 'str'>
type([1, 2, 3]) # <class 'list'>
Python

Pythonは「型によってできることが違う」ため、型を知ることは非常に重要です。

ステップバイステップで理解する 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'>
Python

input() は必ず文字列を返すため、数値として使うには型変換が必要です。

② APIレスポンスの型確認

data = {"price": "100.5"}
print(type(data["price"]))  # <class 'str'>
Python

APIは数値を文字列で返すことが多いため、型チェックは必須です。

③ デバッグ時の確認

print(type(result))
Python

「思った型と違う」ことがバグの原因であることは非常に多いです。

type() と isinstance() の違い(重要)

type() は「完全一致の型」を調べる

type(10) == int  # True
Python

isinstance() は「その型のサブクラスも含めて判定」

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
Python

type() テンプレート(そのまま使える)

型を確認する基本テンプレート

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のデータ構造を正しく理解し、安全で読みやすいコードが書けるようになります。

タイトルとURLをコピーしました