エラー例
次のコードを実行すると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
参考資料
- Python公式ドキュメント - class str(object='') - 組み込み型
- Python公式ドキュメント - str.format(args, *kwargs) - 組み込み型
- Python公式ドキュメント - フォーマット済み文字列リテラル
検証環境
- Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
- Microsoft Windows 10 Enterprise Version 21H2 OS Build 19044.2130 Experience: Windows Feature Experience Pack 120.2212.4180.0