Python: 文字列中に変数の値を埋め込む format, f-string

Pythonで文字列の中に数値など変数の値を埋め込みたい場合、 format()メソッドか f-string(f文字列)を使って実現できます。 f-stringはPython3.6で導入された新しい方法です。 2つの方法を順番に紹介していきます。

format()

format()メソッドの書式は次のとおりです。

書式
"{}を埋め込んだ文字列".format(変数1, 変数2, ..)

波括弧{}の部分をプレースホルダーと言います。 プレースホルダーとは、後から実際の値を埋め込むために 仮に確保した場所のことです。
変数の値を埋め込みたい部分に{}を入れ、 format()の引数として埋め込む変数を指定します。

name = "田中"

print("こんにちは{}さん".format(name)) # こんにちは田中さん

次のようにも書けます。

name = "田中"

words = "こんにちは{}さん"

print(words.format(name)) # こんにちは田中さん

変数が複数の場合

変数が複数の場合は、 変数をカンマで区切ります。 記述されている順番に変数の値が埋め込まれます。
次のサンプルコードでは、変数s, sumの順番で値が埋め込まれています。

s = "合計値"
num = 15

print("2つの{}は {} です。".format(s, num)) # 2つの合計値は 15 です。

変数の順番を指定

変数の順番を指定することもできます。 その場合、{0}や{1}のように{}の中に0から順番に数値を指定します。

先程のコードを利用して、.format(num, s)と引数の順番を変えてみます。

s = "合計値"
num = 15

print("2つの{1}は {0} です。".format(num, s)) # 2つの合計値は 15 です。

式を指定

format()の引数として、変数だけでなく「a + b」のような式を指定することも可能です。

s = "合計値"
a = 10
b = 5

print("2つの{}は {} です。".format(s, a + b)) # 2つの合計値は 15 です。

f-string(f文字列)

f-stringはPython3.6から導入されました。 変数の値を埋め込む方法としては、 format()よりもf-stringの方が直感的でわかりやすいと思います。

書式
f"{変数}を埋め込んだ文字列"

文字列の直前に「f」を付けるのを忘れないでください。 後はプレースホルダーの{}の中に直接変数を指定します。

name = "田中"

print(f"こんにちは{name}さん") # こんにちは田中さん

変数が複数の場合

変数が複数の場合ももちろん可能です。 複数の場合はformat()を使うよりも明らかにわかりやすくなります。

s = "合計値"
num = 15

print(f"2つの{s}は {num} です。") # 2つの合計値は 15 です。

式を指定

{}の中に「a + b」のような式を指定することもできます。

s = "合計値"
a = 10
b = 5

print(f"2つの{s}は {a + b} です。") # 2つの合計値は 15 です。
Python