f文字列の中括弧をエスケープするにはどうすればいいですか? [重複] 質問する

f文字列の中括弧をエスケープするにはどうすればいいですか? [重複] 質問する

中括弧を使用したい文字列がありますが、f 文字列機能も活用したいです。これに適した構文はありますか?

{bar}動作しない方法は 2 つあります。文字列の一部としてリテラル テキストを含めたいと思います。

foo = "test"
fstring = f"{foo} {bar}"

NameError: name 'bar' is not defined

fstring = f"{foo} \{bar\}"

SyntaxError: f-string expression part cannot include a backslash

望ましい結果:

'test {bar}'

編集:この質問の答えは同じようです文字列内のリテラル中括弧文字を印刷し、それに .format を使用するにはどうすればよいでしょうか?ただし、それが f 文字列と同じルールを使用していることを知っている場合にのみ、それを知ることができますstr.format。したがって、この質問が f 文字列の検索者をこの回答に結び付ける価値があることを願っています。

ベストアンサー1

パーサーからのカスタム構文エラーがありますが、同じトリック通常の文字列を呼び出す場合と同じように機能します.format

ダブルカーリーを使用します:

>>> foo = 'test'
>>> f'{foo} {{bar}}'
'test {bar}'

仕様書にも記載されているここそしてドキュメントここ

おすすめ記事