f文字列の置換フィールドの内部にはさらに置換フィールドを記述できる。これを使って、複数の値を1つの置換フィールドに埋め込める。その使用例を紹介。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
# 浮動小数点数の精度を変更する
n = 123.4567
result = f'{n:.5f}'
print(result) # 123.45670
precision = 5
result = f'{n:.{precision}f}'
print(result) # 123.45670
for precision in range(5):
result = f'{n:.{precision}f}'
print(result)
# 出力結果:
#123
#123.5
#123.46
#123.457
#123.4567
# 2進/10進/16進の切り替え
n = 2050
for flg in ['b', 'd', 'x']:
tmp = "_b" if flg == "b" else "#08x" if flg == "x" else "+08d"
result = f'{n:{tmp}}'
print(result)
# 出力結果:
#1000_0000_0010
#+0002050
#0x000802
Pythonのf文字列では置換フィールド内に置換フィールドをネストさせて記述できる。例えば、以下のようなコードについて考える。
n = 123.4567
result = f'{n:.5f}'
print(result) # 123.45670
この例では置換フィールド(波かっこ「{}」で囲まれた部分)に変数nの値を小数点以下5桁の値として埋め込んでいる。何らかの理由で、小数点以下の有効桁数をコードの実行時に動的に変更したくなったとしよう。この値を変数precisionに格納するとする。すると、これを実現するコードは次のようになる。
precision = 5
result = f'{n:.{precision}f}'
print(result) # 123.45670
ここでは、変数nと変数precisionという2つの値を1つの置換フィールドに埋め込む必要があるので、置換フィールドをネストさせている。単一のf文字列で別々の部分に置換フィールドを置いて、それらに変数や式の値を埋め込むのであれば、このようにネストさせる必要はない。
置換フィールドをネストさせることで、複数の変数や式の値をf文字列に埋め込める。以下は小数点以下の有効桁数を増やしながら、変数nの値を出力する例だ。
for precision in range(5):
result = f'{n:.{precision}f}'
print(result)
# 出力結果:
#123
#123.5
#123.46
#123.457
#123.4567
小数点以下の有効桁数が切り替わっていることに注目されたい。
Copyright© Digital Advantage Corp. All Rights Reserved.