TypeError: can only concatenate str (not “int”) to str

Python
本ページはプロモーションが含まれています

はじめに

pythonでprint関数を使っているときにエラーが表示されました。
今回はそのエラーメッセージとその原因と対処方法についてのメモです。

エラー

エラーが表示される簡単なソースコードの例です。
文字列の文字数を表示するプログラムです。

text = "テスト"

print("文字数:" + len(text))
これを実行するとエラーに。
そして、表示されるエラーメッセージはこのようなものです。
Traceback (most recent call last): File "/Users/***/programing/python/check_string_size.py", line 7, in <module> print("文字数:"+len(text))
TypeError: can only concatenate str (not "int") to str

エラーの内容は

「型のエラー:文字列の連結が出来るのは文字列型だけです(int型ではありません)」

となっています。

原因&対処方法

エラーになるのは、異なる型を結合しようとしていたからでした。

今回の場合は文字列型(str)に結合できるのは文字列だけなのに数値の型であるintをくっつけようとしていました。

print関数は引数に文字列しか受け取れませんので、数値を表示されるには文字列に変換する必要があります。

エラーが表示されずに上手くいくソースは↓のようになります。

text = "テスト"

print("文字数:" + str(len(text)))

len(text)は文字数を返します。
この型はint型です。

キャスト(型変換)するにはstr()を用います。
str()は文字列に変換する関数になります。

さいごに

今回は型が違う変数同士を結合したことによるエラーでした。
print()関数を用いたこのようなエラーというのはよく起きます。

プログラムに慣れていても不注意だとよく出くわすので、よくあるエラーの一つとして知っていると対処しやすいかと思います。

この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。

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