1. ホーム
  2. python

[解決済み] f-stringで中括弧をエスケープするには?重複

2022-05-06 06:43:05

質問

中括弧をつけたいが、f-stringの機能も利用したい文字列があります。このような場合に有効な構文はあるのでしょうか?

うまくいかない方法を2つ紹介します。私はリテラルテキストを含めたいと思います {bar} を文字列の一部として使用します。

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}'

Edit: この質問には、次のような答えがあるようです。 文字列中のリテラルな中抜き文字を表示し、さらに.formatを使用するにはどうすればよいですか? ということを知っていなければ、それはわからない。 str.format は、f-stringと同じルールを使っています。ですから、この質問が、f-stringの検索者とこの答えとを結びつける価値を持つことを願っています。

解決方法は?

パーサーからのカスタム構文エラーはありますが 同じ手口 の呼び出しと同様に機能します。 .format を通常の文字列で使用します。

ダブルカリーを使用する。

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

仕様書に記載されている ここで とドキュメント こちら .