🐍
【Python】f-stringを使いこなして、快適なprintデバッグを
f-string(フォーマット済み文字列リテラル)の便利な使い方を知ったので、まとめてみました。
おそらく一般的な使い方は、
text = "world"
print(f"hello {text}")
hello world
=
を使ったデバッグに便利な例
バージョン3.8で追加された=
を使うことで、変数名 = 値
という形で文字列を表示できる。
text = 'world'
print(f"{text = }")
text = 'world'
計算もできます。
print(f"{1 + 1 = }")
1 + 1 = 2
関数も使えます。
print(f"{sum([1,2,3]) = }")
sum([1,2,3]) = 6
とっても便利!
これ以降に紹介しているf-stringの使い方と組み合わせて使うこともできます。
import math
print(f"{math.pi = :.4f}")
math.pi = 3.1416
入れ子にもできちゃいました。
print(f"{f'{10:X}' = }")
f'{10:X}' = 'A'
書式指定子を使った例
:
の後に書式指定子を置くことで、書式指定ができます。
整列・埋める
|
<|
^`で文字を整列できます。
右詰め
a = 100
print(f"a = {a:>10}円")
a = 100円
左詰め
<
の記号を使わずに、数字のみでも左詰される。
a = 100
print(f"a = {a:<10}円")
a = 100 円
中央揃え
a = 100
print(f"a = {a:^10}円")
a = 100 円
空白を埋める
>
,<
,^
の前に文字を置くことで、空白をその文字で埋めることができます。
a = 100
print(f"a = {a:+^5}")
a = +100+
ゼロ埋め
a = 100
print(f"a = {a:0>5}")
a = 00100
符号
+
,-
で符号の使用を指定できます。
+
は、正数、負数のどちらでも符号を表示
-
は、負数のみで符号を表示(デフォルト)
a = 100
print(f"a = {a:+}")
a = +100
整数の表現型
整数は様々な表現型があります。
型 | 意味 |
---|---|
'b' | 2進数 |
'c' | Unicode 文字 |
'd' | 10進数 |
'o' | 8進数 |
'x' | 16進数(小文字) |
'X' | 16進数(大文字) |
>>> f"{127:b}"
'1111111'
>>> f"{128512:c}"
'😀'
>>> f"{10:d}"
'10'
>>> f"{10:o}"
'12'
>>> f"{10:x}"
'a'
>>> f"{10:X}"
'A'
区切り文字
>>> f"{100000:,}"
'100,000'
小数点以下
>>> import math
>>> f"{math.pi:.3f}"
'3.142'
文字列に変換する例
!
の後にs
,r
,a
を置くことで、それぞれ、str(),repr(),ascii()で変換した結果を表示することができます。
import datetime
today = datetime.date.today()
print(f"{today!s}")
print(str(today))
print(f"{today!r}")
print(repr(today))
2022-10-18
2022-10-18
datetime.date(2022, 10, 18)
datetime.date(2022, 10, 18)
参考文献
Discussion