【Python】フォーマット済み文字列(f-strings, f文字列)の使い方【入門第16回】

94, 2019-08-09

目次

フォーマット済み文字列

こんにちは、narupoです。

今回も文字列です

文字列、飽きた……

はい。そうですね。そろそろ文字列はやめて次に進んだ方がいいかもしれません。
今回は大目に見てください。

文字列の中に変数や数値を表示したくなった場合、Pythonではどうすればいいのでしょうか?
その場合、Pythonではフォーマット済み文字列が使えます。
これを使えば簡単に文字列と変数を合体させることができます。

具体的には↓を見ていきます。

  • フォーマット済み文字列の書き方

  • 整数の表示

  • 実数の表示

  • 変数の表示

  • 波括弧内で演算

  • raw文字列

フォーマット済み文字列の書き方

フォーマット済み文字列は↓のように書きます。

:::python
f'内容'

文字列の先頭にfを付けて書くだけです。
このfformatfです。

整数の表示

フォーマット済み文字列で整数を表示するには↓のようにします。

:::python
f'{1}'

波括弧(ブレース)で整数を囲っているだけですね。
もちろん複数書けます。

:::python
f'{1} {2}'

普通の文字列と組み合わせて書けば↓こんな感じです。

:::python
f'私の戦闘力は{530000}です。'

こんなの普通に書くのと何が違うんだ?

はい。フォーマット済み文字列の便利さはこれからです。

桁数指定

波括弧内をコロン(:)で区切って桁数を指定することができます。

:::python
f'{1:4}'

↑の例では4桁の指定になっています。
↓を実行すると、

:::python
print(f'{1:4}')

↓のようになります。

:::python
   1

桁数分、左側に半角スペースが入っています。
こういうのをパディングされていると言います。

で?

えっ。
……。
便利なのはこれからです

ポジショニング

<, ^, vを指定することでパディングの方法を指定することが出来ます。

<で左詰め。

:::python
f'{1:<10}'
1         

^で中央。

:::python
f'{1:^10}'
    1     

>で右詰めになります。

:::python
f'{1:>10}'
         1

0埋め

桁数の前に0を指定することで0埋めすることができます。

:::python
f'{1:04}'
0001

もちろんポジショニングと合わせて使えます。

:::python
f'{1:0<4}'
1000

ポジショニングと使う場合は0だけでなく色々指定できます。
アルファベットや、

:::python
f'{1:a>4}'
aaa1

日本語も使えます。

:::python
f'{1:空>4}'
空空空1

桁区切り

3桁ごとにカンマ(,)区切りで表示してほしいことがあります。
その場合は,を指定すれば勝手にやってくれます。

:::python
f'{100000000:,}'
100,000,000

ちょっと変わったのでアンダーバー(_)区切りもあります。

:::python
f'{100000000:_}'
100_000_000

実数の表示

整数だけじゃありません!
実数も表示できます。

:::python
f'{123.456}'
123.456

小数点以下の桁数の指定

実数の桁指定は↓のようにします。

ドットを含んだ全体の桁数.小数点以下の桁数f

ドット(.)で区切って全体の桁数と小数点以下の桁数を指定できるわけですね。
最後のfを忘れないようにしてください。
つまり、↓のようにします。

:::python
f'{123.45:10.4f}'
  123.4500

指定した値が全体の桁数をオーバーする場合はオーバーした分表示されます。

変数の表示

フォーマット済み文字列で変数を表示するには↓のようにします。

:::python
x = 1
f'{x}'

あとは整数や実数の時と同じでいろいろ指定できます。

:::python
x = 1
f'{x:0^10}'
0000100000

波括弧内で演算

波括弧(ブレース)内で演算することも出来ます。

:::python
f'{1 + 2}'
3

変数を使った演算も可能です。

:::python
x = 2
f'{x * 2}'
4

もちろん演算結果にも色々指定できます。

:::python
f'{1 + 2:0>4}'
0003

raw文字列

raw文字列、憶えてますか?
\などの特殊文字をエスケープしなくても済む便利文字列でした。

↑でちょろっとやりましたが、フォーマット済み文字列と組み合わせることが出来ます。
組み合わせるにはfのあとにrを書いて文字列の先頭に付けます。
↓みたいな感じです。

:::python
fr'C:\path\to\hell'
C:\\path\\to\\hell

おわりに

いかがでしたでしょうか。
フォーマット済み文字列は覚えておいて損は無いです。
特に変数の表示はよく使うので、これだけでも覚えておきましょう。

以上、次回に続きます。

また見てね

関連動画