はじめに
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()関数を用いたこのようなエラーというのはよく起きます。
プログラムに慣れていても不注意だとよく出くわすので、よくあるエラーの一つとして知っていると対処しやすいかと思います。
この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。