1.5 Pythonの型変換と型チェックの基本

1.5 型の自動変換と型チェック

Pythonは動的型付け言語です。変数を宣言するときに型を指定する必要はなく、代入する値によって型が自動的に決まります。この柔軟さはPythonの特徴ですが、型が思わぬ形に変わってエラーの原因になることもあります。

型の自動変換(暗黙の型変換)

Pythonでは異なる型同士の演算で、必要に応じて自動的に型が変換されます。

# 整数と浮動小数点数の演算
result = 3 + 2.5
print(result)       # 5.5
print(type(result)) # <class 'float'>

このように、整数 int と浮動小数点数 float を足すと、結果は自動的に float になります。

明示的な型変換(キャスト)

自動変換に頼らず、自分で型を変換することも可能です。

# 数値 → 文字列
num = 100
text = str(num)
print(text)         # '100'
print(type(text))   # <class 'str'>

# 文字列 → 数値
price = "250"
price_int = int(price)
print(price_int + 50)  # 300

文字列を数値に変換する場合、文字列が数値形式でないと ValueError が発生します。

型チェック

変数の型を確認するには type() 関数を使います。

value = [1, 2, 3]
print(type(value))  # <class 'list'>

特定の型かどうかを調べるには isinstance() 関数を使います。

value = 42
if isinstance(value, int):
    print("整数です")

isinstance() は継承関係も考慮するため、より柔軟な型チェックが可能です。

よくある注意点

  • 文字列と数値の連結エラー:`"価格は" + 300` はエラー。数値を文字列に変換してから結合する必要があります。
  • 予期せぬ小数化:整数同士の割り算 `5 / 2` は `2.5` になります(Python 3では常にfloat)。
  • 暗黙の型変換に頼りすぎない:意図しない結果を避けるため、明示的な変換を心がける。

 

  • Pythonは動的型付けで、自動型変換(暗黙変換)が行われる
  • 必要に応じて int(), float(), str() で明示的に型変換する
  • 型確認には type()、型判定には isinstance() を使用

次のセクションでは、Pythonの「is」と「==」の違いについて深掘りし、バグを避けるための正しい使い方を解説します。

2025-01-11

下田 昌平

開発に関するインプットをアウトプットしています。