如何转义 f 字符串中的大括号? [重复]

问题描述 投票:0回答:1

我有一个字符串,我想要在其中使用大括号,但也可以利用 f 字符串功能。有一些语法适用于此吗?

有两种方法不起作用。我想将文字文本

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

编辑:看起来这个问题的答案与如何在字符串中打印文字大括号字符并在其上使用.format?,但你只能知道,如果你知道

str.format
使用与 f 字符串的规则相同。所以希望这个问题对于将 f 字符串搜索者与这个答案联系起来有价值。

python python-3.x curly-braces f-string
1个回答
520
投票

尽管解析器存在自定义语法错误,但相同的技巧适用于在常规字符串上调用

.format

使用双卷发:

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

要在大括号内嵌入值,可以使用三重大括号。

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

在规范这里和文档这里中提到了。

© www.soinside.com 2019 - 2024. All rights reserved.