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()関数を用いたこのようなエラーというのはよく起きます。

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

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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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