python 3.6で導入されました。format関数と同等のことが可能です。format関数の書式はかなり冗長ですが、f文字列では同等のものを簡潔に書くことができます。
基本的な使い方
name = '太郎'
age = 17
print(f"{name}")
print(f"氏名:{name!r}、年齢:{age}")
#
# 太郎
# 氏名:'太郎'、年齢:12
フォーマット指定
format()関数と同様にコロン : の後に書式を指定することができます。
ゼロ埋めと3桁区切り
i = 1234
print(f'ゼロ埋め: {i:08}')
print(f'3桁区切り: {i:,} 円')
## 出力
# ゼロ埋め: 00001234
# 3桁区切り: 1,234 円
桁数と有効数字
pi = 3.141592653589793238462
print(f"円周率は{pi:.4f}です。")
# 円周率は3.1416です。
フォーマット指定をネストすることもできます。
width = 10
precision = 4
value = 3.141592653589793238462
f"結果: {value:{width}.{precision}}"
# '結果: 3.142'
右寄せ、左寄せ
以下の例では、10ケタを指定した文字列で、それぞれに「右寄せ」「センタリング」「左寄せ」を指定してアスタリスク * を詰めています。
s = 'python'
print(f'{s:*>10}| 右寄せ')
print(f'{s:*^10}| センタリング')
print(f'{s:*<10}| 左寄せ')
# ****python| 右寄せ
# **python**| センタリング
# python****| 左寄せ
2進、8進、10進、16進数表記
number = 256
print(f" hex:{number:#0x} \n oct:{number:#0o} \n bin:{number:#0b}")
#
# hex:0x100
# oct:0o400
# bin:0b100000000
hexnum = 0x100
print(f"{hexnum:d}")
#
# 256
日付と時刻
import datetime
today = datetime.datetime(year=2007, month=12, day = 24)
print(f"{today:%Y-%m-%d}")
# 2007-12-24
now = datetime.datetime.now()
print(f"現在時刻: {now:%Y-%m-%d %H:%M:%S}")
# 現在時刻: 2024-10-1 21:53:57
式の指定
f文字列では置換えフィールド中で式を指定できます。
x = 2
y = 3
print(f"{x} + {y} = {x + y}")
# 2 + 3 = 5
print(f"{x / y:.2}")
# 0.67
次の例では条件式に三項演算子を使っています。
x = 17
print(f"{x}は{'偶数' if x % 2 == 0 else '奇数'}")
辞書のキー指定
f文字列で辞書のキーを指定する場合には引用符が必要になります。
d = {'key1': 1, 'key2': 2}
print(f'{d["key1"]}, {d["key2"]}')
# 1, 2
上の例のように文字列全体を ‘ で囲う場合には、キー指定には ” を使います。
文字列全体を ” で囲う場合には、キー指定は ‘ を使います。
print(f"{d['key1']}, {d['key2']}")
コメント