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 です。