python f文字列

python Python

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']}")

参照

python 3 document 字句解析 リテラル f-string

コメント

タイトルとURLをコピーしました