はじめに
プログラムを書いていて、「ここの変数の値、今どうなってるかな?」と print() で確認すること、よくありますよね。
いわゆる printデバッグ です。
しかし、毎回以下のように書くのは面倒ではありませんか?
x = 42
print("x:", x)
# または
print(f"x = {x}")
変数名が増えるとタイピングが面倒ですし、書き間違いも発生します。
今回は、Python 3.8から導入された、このprintデバッグを劇的にラクにするf-stringの「=」記法をご紹介します!
f-stringの「=」記法とは?
f-string(フォーマット済み文字列リテラル)の波括弧 {} の中に、変数名の後に = を付けるだけで、変数名とその値を自動的にフォーマットして出力してくれます。
使い方
x = 42
y = "Hello"
# 変数名の後ろに「=」をつけるだけ!
print(f"{x=}")
print(f"{y=}")
出力結果
x=42
y='Hello'
なんと、x= や値のクォーテーションを自分で書く必要がなくなります。これだけでタイピング数が半分以下になりますね!
さらに便利な応用テクニック
この = 記法、実は変数だけでなく式や関数にも使えます。
1. 計算式をそのままデバッグする
width = 10
height = 20
# 計算式もそのまま評価して出力
print(f"{width * height=}")
出力:
width * height=200
2. 関数やメソッドの戻り値をデバッグする
text = " python tips "
# メソッド呼び出しの結果も一発
print(f"{text.strip().upper()=}")
出力:
text.strip().upper()='PYTHON'
3. 桁数やフォーマット指定と組み合わせる
小数点の丸め処理や、カンマ区切りなども同時に行えます。
pi = 3.1415926535
# 小数点以下2桁に丸めて出力
print(f"{pi=:.2f}")
出力:
pi=3.14
なぜこれを使うべきなのか?
- タイピング量の削減: 変数名を2回書く必要がなくなります。
-
コピペミスの防止:
print(f"width = {height}")のような、変数名のコピペミスによる混乱が防げます。 - コードがすっきりする: デバッグ用のコードが短くシンプルになり、後で消すのも簡単です。
まとめ
明日からの開発では、デバッグ時に print(f"{var=}") をぜひ使ってみてください。
ちょっとした小技ですが、日々のコーディングのストレスがぐっと減るはずです!