Python TypeError: can only concatenate str (not "int") to str
数値を代入した変数をprint()にて表示させようとした際、
TypeError: can only concatenate str (not "int") to str
というエラーが発生しました。
今回はこのエラーの修正方法と原因について解説いたします。
プログラム文
year = 1986
print("私は" + year + "年生まれです")
これを実行してみたところ以下のエラー文が表示されました。
TypeError: can only concatenate str (not "int") to str
修正方法
year = 1986
print("私は" + str(year) + "年生まれです")
変更点
print("私は" + str(year) + "年生まれです")
とするとエラーは出てこなくなります。
※"str()"は()の中の型をstr型にするコードです。
原因
year = 1986
ではyearにint型の数値が入力されています。
Pythonでは文字列か数値かを計算段階で判別します。
文字列と数値の両方が計算に使用される場合どちらで計算すればよいかわからなくなってしまいます。
なので計算式に使用される値を数値か文字列に統一することでエラーが解消されます。
今回はstr型に統一することでエラーを回避しています。
数値に統一しなければいけない例
count = '99'
print(count + 1)
というプログラム文でも、上記エラーを取得できました。
数値ならint型に、文字列ならstr型に統一しないといけないことがわかりました。
以上です。
ここまで読んでくださり、ありがとうございました。
何か間違いを見つけたら都度修正いたしますので、よろしくお願いいたします。