白黒つけようぜ!くまねこ(@kumanecoblog)です。
今日もPython捗っていますか?
TypeError: can only concatenate str (not "int") to str
処理は間違ってないはずなのに
なぜか予想外のところからエラーが・・・!
プログラミング学習を始めた当初は誰しもエラーを出すものです。
学習を始めたまだまだ関数やデータ型の変換に慣れていない当初、
よくエラーを出していました。
中でも、このエラー文はよく見かけた記憶があります。
TypeError: can only concatenate str (not "int") to str
このエラー文は「str型にはstr型しか結合できないよ!」と書いてあります。
今回は「can only concatenate str (not “int”) to str 」が出る原因と解決方法を
実際のコードを使って、どこよりもわかりやすく丁寧に解説します!
意外な見落としがあるかも!
原因
結論から言います!
原因は、str型とint型が混同しているからです!
str型は文字列、int型は整数のデータ型でした。
これらを一つに繋げることはできません。
str型とint型などのデータ型について詳しいことはこちらへ!
実際のエラー文
実際に僕がPythonを学び始めた時にエラーを出したコードです。
count = int(input('好きな数字を入れてください >>'))
total = count * 10
print('あなたは' + count + 'を選びました。10を掛けると' + str(total) + 'となります。')
そうすると以下のようなエラー文が出ました。
TypeError: can only concatenate str (not "int") to str
なんでだ!コードは間違ってないはずなのに!
しかもこんな簡単なコードで間違いようがないだろうがい!
と一人でプリプリしていましたw
わかる方にはわかると思いますが、このコードはちゃんと書かれているようで
抜けているものがあります。
プリプリする前に見直せよ!
と当時の僕に言ってあげたい・・・
解決方法
先ほどのコードを例に使います。
変数countはint型のデータ型が代入されています。
なので、print関数に入れる時に、str( )で囲む必要があります。
count = int(input('好きな数字を入れてください >>'))
total = count * 10
print('あなたは' + str(count) + 'を選びました。10を掛けると' + str(total) + 'となります。')
これでエラーは出なくなります。
つまりこのコードは、変数totalにはstr( )で囲っているのですが、変数countには囲っていないというケアレスミスです。
もしかすると、今このエラーが出ているあなたも、簡単なところを見落としているかもしれませんので今一度見直してみてください!
まとめ
以上が「can only concatenate str (not “int”) to str」の解決方法でした。
エラーはどれだけ上達しても、プログラムを作る時には必ずついてきます。
特にプログラミング学習を始めた当初は、たくさんエラーを出すものです。
僕もそうでした。その度にエラー文をコピペして検索しての繰り返しでした。それを繰り返すうちにスキルが身について行きました!そしてエラーを検索して解消するというのも立派なスキルです!
これからもどんどんエラーを出して自分のスキルを高めていってください!
なにか分からないことがあればTwitterのDMにてご連絡ください。
「こんな簡単な事聞いちゃってもいいのかな」と心配することはありません。
どんなことでもお気軽にご連絡ください!
この記事が少しでも役立ててもらえたらうれしいです。
今回も最後まで読んでいただき、本当にありがとうございました!
コメント