GrammarPrPython

【Python】フォーマット済み文字列リテラル(f-string)の使い方

本記事では、Python3.6以降に追加されたフォーマット済み文字列リテラル(短くしてf-stringとも呼びます)の基本的な形式、便利な機能などを紹介します。Python 2.7や3.5など、以前のバージョンでは、str.format()を使う必要があります。


Pythonには
実力を証明できる資格があります

PythonにはPython3エンジニア認定基礎試験という試験があります。

試験範囲がPythonチュートリアル(公式ドキュメント)となっているため、Pythonの基礎を全て押さえることができます。

  • 独学で勉強していて、どれくらい理解できているのか調べたい
  • 今の仕事も続けつつ、キャリアの幅を広げたい
  • 新しい技術としてPythonを習得したい

そんな方は是非詳細をご確認ください。

f-stringとは

文字列の頭にfFを付け、式を{}の間に書くことで、変数を参照することができます。
ここでいう式とは、値を1つ返すものになります。

str.format()よりスッキリ書けるというメリットがあります。

str.format()で書いた場合

便利な機能を紹介

f-stringには、式展開や文字幅の指定など、便利な機能があるので一部を紹介します。
詳しくは公式ドキュメントをご確認ください。

式展開

中括弧内に変数だけでなく式も指定できます。

小数の丸め

fが小数、.2が小数2桁を表します。

文字幅の指定

nで最小の文字幅を指定することができます。dは10進数を表しています。

文字幅がnを超える場合、切り詰めるようなことはしません。

!s!r!a

str() 、repr()、ascii()を適用することができます。
‘!s’ が str() 、 ‘!r’ が repr()、’!a’ が ascii() を表しています。

  • str():人間に読める表現を返す
  • repr():インタープリタに読める表現を返す
  • ascii():非ASCII文字をUnicodeエスケープする

フォーマット前に適用されるので注意してください。

python3.12の変更点

python3.12が2023年10月2日にリリースされました。
これにより、f-stringの制限がいくつか解除されています。

Python3.12の変更点を知りたい方はこちら

引用符の再利用が可能に

f-stringの囲みに使ったクォーテーション記号を{}内でも使えるようになりました。
python3.11以前のバージョンではSyntaxErrorになります。

joinメソッドに関して詳しく知りたい方はこちら

また、これによって任意の数のf-stringをネストできるようになりました。

改行と\が使用可能に

python3.12では改行と\が使えるようになりました。\が使えることにより、エスケープシーケンスを含めることができます。

まとめ

f-stringは書き方がシンプルでオプションが豊富にある高機能な文字列フォーマットです。Pythonコードの可読性向上に活用しましょう。

関連記事
【Python】raw文字列の使い方(エスケープシーケンスを無効化)
【入門者向け】効率よくPythonを習得する3Step

コメント

タイトルとURLをコピーしました