【Python】フォーマット済み文字列(f-strings, f文字列)の使い方【入門第16回】
目次
フォーマット済み文字列
こんにちは、narupoです。
今回も文字列です。
文字列、飽きた……
はい。そうですね。そろそろ文字列はやめて次に進んだ方がいいかもしれません。
今回は大目に見てください。
文字列の中に変数や数値を表示したくなった場合、Pythonではどうすればいいのでしょうか?
その場合、Pythonではフォーマット済み文字列が使えます。
これを使えば簡単に文字列と変数を合体させることができます。
具体的には↓を見ていきます。
フォーマット済み文字列の書き方
整数の表示
実数の表示
変数の表示
波括弧内で演算
raw文字列
フォーマット済み文字列の書き方
フォーマット済み文字列は↓のように書きます。
f'内容'
文字列の先頭にf
を付けて書くだけです。
このf
はformat
のf
です。
整数の表示
フォーマット済み文字列で整数を表示するには↓のようにします。
f'{1}'
波括弧(ブレース)で整数を囲っているだけですね。
もちろん複数書けます。
f'{1} {2}'
普通の文字列と組み合わせて書けば↓こんな感じです。
f'私の戦闘力は{530000}です。'
こんなの普通に書くのと何が違うんだ?
はい。フォーマット済み文字列の便利さはこれからです。
桁数指定
波括弧内をコロン(:
)で区切って桁数を指定することができます。
f'{1:4}'
↑の例では4
桁の指定になっています。
↓を実行すると、
print(f'{1:4}')
↓のようになります。
1
桁数分、左側に半角スペースが入っています。
こういうのをパディングされていると言います。
で?
えっ。
……。
便利なのはこれからです。
ポジショニング
<
, ^
, v
を指定することでパディングの方法を指定することが出来ます。
<
で左詰め。
f'{1:<10}'
1
^
で中央。
f'{1:^10}'
1
>
で右詰めになります。
f'{1:>10}'
1
0埋め
桁数の前に0
を指定することで0
埋めすることができます。
f'{1:04}'
0001
もちろんポジショニングと合わせて使えます。
f'{1:0<4}'
1000
ポジショニングと使う場合は0
だけでなく色々指定できます。
アルファベットや、
f'{1:a>4}'
aaa1
日本語も使えます。
f'{1:空>4}'
空空空1
桁区切り
3桁ごとにカンマ(,
)区切りで表示してほしいことがあります。
その場合は,
を指定すれば勝手にやってくれます。
f'{100000000:,}'
100,000,000
ちょっと変わったのでアンダーバー(_
)区切りもあります。
f'{100000000:_}'
100_000_000
実数の表示
整数だけじゃありません!
実数も表示できます。
f'{123.456}'
123.456
小数点以下の桁数の指定
実数の桁指定は↓のようにします。
ドットを含んだ全体の桁数.小数点以下の桁数f
ドット(.
)で区切って全体の桁数と小数点以下の桁数を指定できるわけですね。
最後のf
を忘れないようにしてください。
つまり、↓のようにします。
f'{123.45:10.4f}'
123.4500
指定した値が全体の桁数をオーバーする場合はオーバーした分表示されます。
変数の表示
フォーマット済み文字列で変数を表示するには↓のようにします。
x = 1 f'{x}'
あとは整数や実数の時と同じでいろいろ指定できます。
x = 1 f'{x:0^10}'
0000100000
波括弧内で演算
波括弧(ブレース)内で演算することも出来ます。
f'{1 + 2}'
3
変数を使った演算も可能です。
x = 2 f'{x * 2}'
4
もちろん演算結果にも色々指定できます。
f'{1 + 2:0>4}'
0003
raw文字列
raw
文字列、憶えてますか?
\
などの特殊文字をエスケープしなくても済む便利文字列でした。
↑でちょろっとやりましたが、フォーマット済み文字列と組み合わせることが出来ます。
組み合わせるにはf
のあとにr
を書いて文字列の先頭に付けます。
↓みたいな感じです。
fr'C:\path\to\hell'
C:\\path\\to\\hell
おわりに
いかがでしたでしょうか。
フォーマット済み文字列は覚えておいて損は無いです。
特に変数の表示はよく使うので、これだけでも覚えておきましょう。
以上、次回に続きます。
また見てね