2023年04月05日 更新

Pythonのフォーマット済み文字列リテラル(f-string)を使って簡単にデバッグログを記述

どうも、クラゲジュニアです。

Pythonのprint関数で変数名と値を表示したい場合に使える便利な技です。

文字列連結

直感的に分かりやすい書き方は+記号で文字列連結を使う方法です。

price = 100
print('price=' + str(price))

# 出力結果
# price=100

ただし、変数が数値の場合、strを付ける必要があり、少し面倒です。

カンマ区切り

変数が文字列か数値に関係なくシンプルに書けるのが、print関数のカンマ区切りです。

price = 100
print('price=', price)

# 出力結果
# price= 100

なお、カンマの部分は半角スペースが挿入されます。

f-string

Python3.6からf-stringという表記ができるようになりました。文字列の中に変数を埋め込んだ形で書けます。

price = 100
print(f'price={price}')

# 出力結果
# price=100

さらにPython3.8から=記号を使うことでシンプルに書けます。

price = 100
print(f'{price=}')

# 出力結果
# price=100

デバッグログに便利です。

変数が複数ある場合で比較

変数が1つだけだと、f-stringの恩恵が分かりにくいですが、複数ある場合は一目瞭然です。

price1 = 100
price2 = 200
price3 = 300

#文字列連結
print('price1=' + str(price1) + ' price2=' + str(price2) + ' price3=' + str(price3))

#カンマ区切り
print('price1=', price1, 'price2=', price2, 'price3=', price3)

#f-string
print(f'{price1=} {price2=} {price3=}')

# 出力結果
# price1=100 price2=200 price3=300
# price1= 100 price2= 200 price3= 300
# price1=100 price2=200 price3=300

以上です。