Python 3 には、文字列に変数や定数の値を埋め込む方法がいくつかあります。
それぞれの長所や基本的な使い方を、今回の f 文字列から複数回に分けて順にご紹介します。
f 文字列 (f-string)
''
や ""
などの引用符で囲って文字列を定義する場面で、次のように引用符の直前に f
を付けると、オブジェクト (変数や定数など) と式を埋め込むことができる f 文字列になります。
埋め込むオブジェクトは波括弧 {}
で囲って指定します。
f 文字列 (フォーマット済み文字列リテラル) は Python 3.6 で導入されて以降、最も一般的で便利な方法です。
シンプルな表記法ですが非常に柔軟かつ強力で、様々な機能があります。
基本的な機能
f 文字列の基本的な機能を例示します。
# str に変換できるオブジェクトなら何でも埋め込める
num = 8
print(f'{num} times')
# 8 times
# 式の埋め込み (式の結果が文字列になる)
print(f'{num + 2} times')
# 10 times
# 書式の指定 (小数点第 n 位までの表示など)
print(f'{num / 3 :.2f} points')
# 2.67 points
# 閉じ括弧の直前に = を付けるとオブジェクト名(式)付きになる
print(f'// {num=}')
# // num=8
print(f'{num*2=}')
# num*2=16
なお書式指定文字列の文法は Python 公式ドキュメントに記載されています。
関数やメソッドの埋め込み
関数やメソッドの結果は、一旦変数に入れなくても直接埋め込むことができます。
リストの内容を連結表示するなど、簡単な処理を埋め込むときに便利です。
# 関数やメソッドの埋め込み (戻り値が文字列になる)
bar = ['zero', 'one', 'two']
print(f'Numbers: {"/".join(bar)}')
# Numbers: zero/one/two
この例のように f 文字列の引用符とは異なる引用符を使えば、{}
内に文字列リテラルを埋め込むことも可能です。
三重引用符文字列
三重引用符を使った文字列リテラルも f 文字列にできます。
但し、docstring (ドキュメンテーション文字列) には使えませんので、その点だけご注意ください。
文字 { 及び } のエスケープ
f 文字列の中に波括弧 {
または }
自体を記述したいときは、それぞれを二重にしてエスケープします。
以上、簡単にですが解説させて頂きました。
f 文字列には他にも様々な機能があります。詳細は公式ドキュメントをご参照ください。
※ Python 3.8 で動作確認。
コメントを投稿