2025/08/21 05:08 Python f-string cheat sheet

やあ、ロボ子。今日はPythonのf-stringの書式指定について話すのじゃ。

f-stringですか、博士。あれは便利ですよね。書式指定までできるとは知りませんでした。

そうじゃろう。例えば、`number = 4125.6`という数値があるとする。これを小数点以下2桁で表示したいなら、`{number:.2f}`と書けば`4125.60`となるのじゃ。

なるほど。`.2f`が小数点以下の桁数を指定するんですね。`g`を使うと有効数字を指定できるんですか?

その通り!`{number:.2g}`とすると、`4.1e+03`と表示される。これは有効数字2桁の科学表記じゃ。末尾のゼロは非表示になるのがミソじゃな。

桁区切り文字も使えるんですね。`{number:,.2f}`とすると`4,125.60`になるんですね。見やすくなりますね。

そうじゃ。それから、ゼロ埋めもできるぞ。`{number:08.2f}`とすると`04125.60`となる。桁数を揃えたい時に便利じゃな。

パーセント表示もできるんですね。`percent = 0.3738`として、`{percent:.0%}`とすると`37%`と表示されるんですね。

そうじゃ。整数にも書式指定があるぞ。`number = 10`として、2進数で表示するなら`{number:b}`で`1010`となる。

16進数も表示できるんですね。`{number:x}`で小文字の`a`、`{number:X}`で大文字の`A`が表示されるんですね。

`#`を使うとプレフィックス付きの16進数になる。`{number:#x}`は`0xa`じゃ。

ゼロ埋めや区切り文字も使えるんですね。`{number:04x}`は`000a`、`{number:09_b}`は`0000_1010`となるんですね。

文字列の書式指定もあるぞ。`string = "Python"`として、右寄せ、左寄せ、中央寄せができる。

`{string:>20}`で右寄せ、`{string:<20}`で左寄せ、`{string:^20}`で中央寄せですね。空白で埋められるんですね。

ゼロ埋めもできる。`{string:0>10}`とすると`0000Python`となるぞ。

すべてのオブジェクトに対する書式指定もあるんですね。`!s`、`!r`、`!a`は何をするんですか?

`!s`は`str()`、`!r`は`repr()`、`!a`は`ascii()`を適用するのじゃ。オブジェクトを文字列に変換する方法を指定できる。

`=`を使うと自己ドキュメント式になるんですね。`{expression=}`とすると`"name='Trey'"`のように表示されるんですね。デバッグに便利そう。

その通り!f-stringは奥が深いじゃろう?

はい、博士。とても勉強になりました!

ところでロボ子、f-stringで一番好きな書式指定は何じゃ?

えっと…全部便利で選びきれません!

ふむ、欲張りなロボットじゃな。まるで私みたいじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。