Python - 文字列に数値を結合するとエラーになる

型が異なるため、TypeErrorが発生します。解決するには数値を文字列に変換するか、fromat関数やフォーマット済み文字列リテラルを使用して数値を文字列中に埋め込みます。

エラー例

次のコードを実行するとTypeErrorが発生します。

sample1.py

print('文字列' + 100)
# TypeError: can only concatenate str (not "int") to str
サンプルコードの実行結果
サンプルコードの実行結果

解決方法1 str関数

組み込み関数 str() を使用し、数値を文字列に変換してから結合します。
print('文字列' + str(100))
# 文字列100

解決方法2 str.fromatメソッド

fromatメソッドを使用し、文字列に数値を埋め込みます。数値を埋め込みたい場所を 「{インデックス}」 とします。インデックスの代わりに名前を付けることもできます。
print('文字列{0}'.format(100))
# 文字列100

print('文字列{0}/{1}'.format(100, 200))
# 文字列100/200

print('文字列{num1}/{num2}'.format(num1=100, num2=200))
# 文字列100/200

解決方法3 フォーマット済み文字列リテラル(f-string)

文字列に 接頭辞 'f' または 'F' を付与すると 文字列に数値や変数を埋め込むことができます。Pythonバージョン3.6以降であれば最もお勧めの方法です。
print(f'文字列{100}')
# 文字列100

print(f'文字列{100}/{200}')
# 文字列100/200

変数の埋め込み

num1 = 100
num2 = 200
print(f'文字列{num1}/{num2}')
# 文字列100/200

参考資料

検証環境