python3.6からstr.formatの代わりに、もっと簡単に書けるf-stringが追加されたらしいけど、メリットや使い方を教えてー。
まずはstr.formatと比較して、どれくらい見やすいのかを見てみるぞ。
#str.formatの場合
a = 'うさぎ'
b = 'カメ'
print('先にゴールしたのは{}です。{}は寝ていました。'.format(a, b))
#output:先にゴールしたのはうさぎです。カメは寝ていました。
#f-stringの場合 (フォーマット済み文字列リテラルとも言うよ!)
a = 'うさぎ'
b = 'カメ'
print(f'先にゴールしたのは{a}です。{b}は寝ていました。')
#output:先にゴールしたのはうさぎです。カメは寝ていました。
f-stringは f'{ }’ という形で記述します。{ }の中に表示したい変数を書きます。
どさくさに紛れて史実ねじ曲げてるな。
そ、そんなことないよ。最近の研究でうさぎが勝った説があるんだよ(汗)
f-stringの方が{}の中に変数がそのまま入っているから直感的にわかる気がするね。
そうだな、str.formatよりもスッキリわかりやすく書けるな。
ちなみに書式指定もできるから、日付も以下のようにできるぞ
from datetime import datetime
one_day = datetime(2022, 1, 1)
print(f'{one_day = :%Y/%m/%d}') #変数 =の書き方はpython3.8以降で追加されたよ。それ以前だとエラーになるよ
#output: 2022/1/1
さらに、python3.8以降なら f'{変数名=}’とすると、その変数の値も出力されます。
デバッグに非常に便利ですね。
a = 10
b = 20
print(f'{a =},{b =}')
#output: a =10,b =20
今後はできる限りf-stirngを使っていこうかな!