はじめに
<バージョン>
Python: 3.7.4
Pythonで文字列と値をそのまま結合するとエラーになります。
str_int.py
NAME="Taro"
AGE=15
print(NAME + " is " + AGE + " years old")
実行結果(失敗例)
文字列と値をそのまま結合出来ないのでエラーになりました。
出力
Traceback (most recent call last):
File "str_int.py", line 5, in <module>
print(NAME + " is " + AGE + " years old")
TypeError: can only concatenate str (not "int") to str
解決策
解決策はいろいろあります。個人的には2がプログラミングっぽくて好みです。
ポイントだけ書いておくと
1:str()を用いて、値(AGE)を文字列に変換する
2:%s=文字列、%d=値を表すのでこれを正しく書かないとエラーになる
4:先頭の「f」を忘れると、変数が代入されずに変数名の文字列がそのまま出力されます
5:「,」で繋げると自動でスペースを入れてくれ、かつstr()を使わなくてよくなります
<2019/12/22:項目5はkonandoiruasa様のご指摘により追加>
str_int2.py
NAME="Taro"
AGE=15
print("1 : " + NAME + " is " + str(AGE) + " years old")
print("2 : %s is %d years old" % (NAME, AGE))
print("3 : {} is {} years old".format(NAME, AGE))
print(f"4 : {NAME} is {AGE} years old")
print("5 :", NAME, "is", AGE, "years old")
実行結果(成功例)
どれでも上手くいきました。太郎君は15歳なのです。
出力
1 : Taro is 15 years old
2 : Taro is 15 years old
3 : Taro is 15 years old
4 : Taro is 15 years old
5 : Taro is 15 years old