如何在python 3.6中转义f字符串?

时间:2017-03-01 00:35:10

标签: python python-3.6 f-string

我有一个字符串,我想要花括号,但也利用了f字符串功能。是否有一些适用于此的语法?

以下两种方法无效。我想将文字“{bar}”作为字符串的一部分包含在内。

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

NameError:未定义名称“bar”

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

SyntaxError:f-string表达式部分不能包含反斜杠

期望的结果:

'test {bar}'

编辑:看起来这个问题与How can I print literal curly-brace characters in python string and also use .format on it?的答案相同,但您只能知道格式函数使用与f字符串相同的规则。所以希望这个问题对于将f-string搜索者与这个答案联系起来是有价值的。

1 个答案:

答案 0 :(得分:36)

虽然解析器存在自定义语法错误,但same trick与常规字符串一样。

使用双重卷曲:

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

在规范here和文档here中提及。