TypeError: can only concatenate str (not 'int') to str
Pythonで文字列と数値を+演算子で連結しようとした際のエラー
概要
Pythonで文字列と数値など、異なる型のオブジェクトを+演算子で連結しようとした際に発生するエラーです。
エラーメッセージ
TypeError: can only concatenate str (not "int") to str
TypeError: can only concatenate str (not "float") to str
TypeError: can only concatenate str (not "list") to str
原因
- 型の不一致: 文字列と数値を直接連結しようとしている
- 暗黙の型変換なし: Pythonは他の言語と異なり暗黙の型変換を行わない
- 変数の型の誤認識: 文字列だと思っていた変数が実は数値だった
- 関数の戻り値の型: 関数が期待と異なる型を返している
解決策
1. str()で明示的に変換
| |
2. f-string(フォーマット済み文字列リテラル)
| |
3. format()メソッド
| |
4. %演算子(古い形式)
| |
5. join()でリストを連結
| |
6. 型チェックを追加
| |
よくある間違い
input()の戻り値が文字列であることを忘れて計算する- ファイルから読み込んだ数値を文字列として扱う
- JSONから取得した値の型を確認しない
関連エラー
参考リンク
Python の他のエラー
この記事は役に立ちましたか?