Pythonを書いていると、突然エラーが出て止まることがあります。
特に多いのが、数値と文字列を一緒に使ったときのエラーです。
この記事では、その理由を実際のエラー表示を見ながら説明します。

この記事でわかること

  • 型とは何か
  • 数値と文字列を足すとエラーになる理由
  • 初心者が必ず詰まるポイント

完成コード(まず見てみよう)

age = 20
print("年齢は" + str(age) + "歳です")

テーマの説明(やさしく)

Pythonでは、値には型という種類があります。
型は、その値が何として扱われるかを表します。

数値は計算用の型です。
文字列は文章として扱う型です。
Pythonは、この違いをとても大切にします。

数値と文字列はなぜエラーになるのか

次のコードを実行すると、エラーになります。

age = 20
print("年齢は" + age)

実行すると、次のようなエラーが表示されます。

TypeError: can only concatenate str (not "int") to str

このエラーは文字列に数値をそのまま足そうとした、という意味です。

Pythonは、次のように役割を分けています。
そのため、型が混ざると止まります。

  • 文字列はつなぐ
  • 数値は計算する

具体例・補足説明

このエラーを解決するには、数値を文字列に変えます。
そのために使うのがstrです。

age = 20
print("年齢は" + str(age))

str(age)は、数値の20を文字の20に変えています。
これで、文字列同士としてつなげられます。

おじちくワンポイント

エラーは失敗ではありません。
Pythonが、間違った使い方を教えてくれている状態です。
型が違うかもしれない、と考える癖を付けると楽になります。

よくある勘違い・注意点

  • 見た目が数字なら数値だと思い込む
  • エラーが出ると向いていないと感じる
  • 型を意識せずに書き進める

練習問題

問題1
数値と文字列を足して、同じエラーが出るか確認してください。

問題2
strを使って、エラーが出ない形に直してください。

まとめ

  • Pythonには型がある
  • 数値と文字列は別物
  • そのまま足すとTypeErrorになる
  • strで文字列に変えれば解決する

このエラーが理解できれば、初心者の山は一つ越えています。

次回の記事は今後追加予定です。

前回の記事はこちらです。
Pythonの文字列strの使い方を初心者向けに解説

目次はこちらです。
Python学習コンテンツ