f忘れでf文字列が展開されない
f文字列のfを書き忘れると、波括弧の中身は変数として展開されず、そのままの文字として表示されます。
なぜエラーが出ないのか
出力: {name}
(エラーなし)- Pythonは何も報告しません。文法として正しいためです
出力: {name}- 実際の挙動 — 期待した結果と食い違っている箇所
見つけ方- エラーが出ないので、出力を目で確かめるしかありません。この種の誤りが最も発見が遅れます
このエラーが出る典型パターン
パターン1
1 name = "Tom" 2 msg = "{name}" ^ 3 print(msg)
出力: {name}期待: Tom (エラーにはなりません)
f忘れると、波括弧はただの文字として扱われ、変数の値に置き換わりません。
直し方: (空) を f にします。
広告
広告スロット(未設定)
パターン2
1 age = 20 2 print( "Age: {age}") ^
出力: Age: {age}期待: Age: 20 (エラーにはなりません)
print()の引数でも同じです。f忘れは構文エラーにならないため、実行するまで気づきにくいミスです。
直し方: (空) を f にします。
パターン3
1 x = 5 2 y = 10 3 print( "{x} + {y} = {x+y}") ^
出力: {x} + {y} = {x+y}期待: 5 + 10 = 15 (エラーにはなりません)
式を埋め込む{x+y}のような書き方も、f文字列でなければ計算されずそのまま表示されます。
直し方: (空) を f にします。
よくある誤解
波括弧の書き方自体は合っているため、構文エラーにはなりません。実行して出力を見るまで、展開されていないことに気づきにくいミスです。
まとめ
f忘れでf文字列が展開されないは中級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。