Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

Python3.6で導入されたフォーマット済み文字列リテラル(f'...')を使えばstr.format()より短く書ける

この記事は Pythonのコードを短く簡潔に書くテクニック Advent Calendar 2017 の14日目です。

はじめに

Python3.6でフォーマット済み文字列リテラル(f-strings)というのが導入されました。
他の言語で変数埋め込みとか、変数展開とか、式展開と呼ばれているやつです。
これを使うとstr.format()を使わずに文字列中に変数の値や式を埋め込むことができます。

普通にstr.format()を使った場合

>>> a = 1
>>> b = 1.2345
>>> c = dict(key1=123)
>>> d = 'ABC'
>>> '{} {:.1f} {} {}'.format(a, b, c['key1'], d.lower())
'1 1.2 123 abc'

フォーマット済み文字列リテラルを使った場合

>>> a = 1
>>> b = 1.2345
>>> c = dict(key1=123)
>>> d = 'ABC'
>>> f'{a} {b:.1f} {c["key1"]} {d.lower()}'
'1 1.2 123 abc'

フォーマット済み文字列リテラルでは文字列中の{}の中に変数や式を書くことができます。
str.format()と同様に書式指定も可能です。

これでstr.format()よりだいぶ短く書くことができますが、シンタックスハイライトが対応していないとちょっとわかりにくいかも知れません。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
31
Help us understand the problem. What are the problem?