しぷぜん

しぷぜん

素人プログラマなおいがStep Zero to Oneしていくブログ

Pythonでよく忘れるFormatに関するあれこれ(f-string編)

にほんブログ村 IT技術ブログ Pythonへ

こんにちは、少しお久しぶりです。なおいです。

Pythonを触っていて悩む文字列の出力のフォーマット問題で備忘録シリーズを書いてましたが、書いてる時に新たに知ったf-stringというやり方がありましたのでその4として書いていきます。

 

 

f-string形式の文字列書式

最初の説明で新しい新しいと言ってますが、このアップデートは約1年前に行われているものでした。(全く情報を仕入れていないことがバレますね・・・)

 

What’s New In Python 3.6 — Python 3.6.1 ドキュメント

 

format()と少し違い、文字列内に変数や書式、実行式を埋め込めるられるため書き方が冗長でなくなるらしい。

 

早速、公式のドキュメントにある例をみてみることにします。

name = "Fred"
f"He said his name is {name}."
→'He said his name is Fred.'

width = 10
precision = 4
value = decimal.Decimal("12.34567")
f"result: {value:{width}.{precision}}"
→'result:     12.35'

最初に「f」を書いて普通に表現したい文字列を書いていけばいいみたい。

そのなかで、欲しい変数を{}で囲めばそれを変数として用いることができると・・・

 

確かにかなり簡単でわかりやすい。しかも、{}の中で計算したりもできるし、関数を呼ぶこともできる。

width = 10
height = 4
f"result: {width*height/2}"
→'result:20'

def plus(x,y):
   return x + y

f"result: {plus(10,20)}"
→'result:30'

 

もっといろいろ細かいこともできるみたいだけど今理解したところはここまでなのでここら辺で終わることにします。今までたくさんformat関数を使ってたので、何かコンバート作業がある時にここも変更してみたいいいアップデートですね。