このBlogは移転しました。今後は aish.dev を御覧ください。

Python 3.8 の概要 (その5) - デバッグ用 f文字列フォーマット

Python3.8の新機能で、これ一番好きかも。このためだけにPython3.8必須にしてもいい。

通常、 f文字列 に変数名や式を指定すると、その値が文字列に埋め込まれます。

>>> foo, bar = 10, 20
>>> print(f'value is {foo+bar}')
value is 30

便利な機能ですが、デバッグ用にデータを出力するときには、ちょっと面倒です。たとえば foobar の値を確認するときは、確認したい変数名のテキストと、表示したい式を別々に書く必要があります。

>>> print(f'foo={foo} bar={bar} foo+bar={foo+bar}')
foo=10 bar=20 foo+bar=30

そこで、f文字列に出力指定方法が追加され、出力したい式に続けて = を指定すると、その式と式の値の両方が文字列に埋め込まれるようになりました。

>>> print(f'{foo=} {bar=} {foo+bar=}')
foo=10 bar=20 foo+bar=30

出力フォーマットを指定する場合は、= に続けて記述します。

>>> print(f'{foo=:0.3f} {bar=:.1e} {foo+bar=:04d}')
foo=10.000 bar=2.0e+01 foo+bar=0030