文字列に変数を埋め込む時はpython3.6以降に導入されたf文字列を使うと便利
pythonで文字列中に変数の値を追加する方法
変数の値を文字列中に追加して表示する方法は
- format()
- 書式化演算子%
がありますが、python3.6以降に登場したf文字列がシンプルで使いやすいです。
各方法での書き方
名前は{変数 name} です。年齢は {変数 age} 歳です。
というようにnameとageという変数を文字列に埋め込んで表示する記法について
f文字列で記述する方法
f ‘ ‘の中に{変数}を記述すると埋め込めます。
name = '太郎'
age = 30
print(f'名前は{name} です。年齢は {age} 歳です。')
----出力----
名前は太郎 です。年齢は 30 歳です。
format()を利用する方法
name = '太郎'
age = 30
print('名前は{} です。年齢は {} 歳です。'.format(name, age))
----出力----
名前は太郎 です。年齢は 30 歳です。
下記のように{}が複数登場するとエラーになります。
name = '太郎'
age = 30
print('名前は{} です。年齢は {} 歳です。ですから{}は60歳未満です。'.format(name, age)
----出力----
IndexError: Replacement index 2 out of range for positional args tuple
{}に対して、name,ageが順番にはいるので、三番目の{}には変数がなくてエラーになります。
format(0,1,2,…}のように入れた変数に番号が付与されるので、対応する番号を{0}, {1}と書けばエラーになりません。
name = '太郎'
age = 30
print('名前は{0} です。年齢は {1} 歳です。ですから{0}は60歳未満です。'.format(name, age))
----出力----
名前は太郎 です。年齢は 30 歳です。ですから太郎は60歳未満です。
この記法は下記のメリットがあります。
- 読みやすい
- 変数を再利用できる
書式化演算子%
古いコードではこの方法が使われていますが、python2からformat, python3.6からはf文字列が登場しているのでそちらを利用したほうがよいと思います。
name = '太郎'
age = 30
print('名前は%sです。年齢は%d歳です。' % (name, age))