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

JDA*_*ers 41 python python-3.6 f-string

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

这有两种方法不起作用.我想将文字文本" {bar}"包含在字符串中.

foo = "test"
fstring = f"{foo} {bar}"
Run Code Online (Sandbox Code Playgroud)

NameError:未定义名称"bar"

fstring = f"{foo} \{bar\}"
Run Code Online (Sandbox Code Playgroud)

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

期望的结果:

'test {bar}'
Run Code Online (Sandbox Code Playgroud)

编辑:看起来这个问题有相同的答案如何在python字符串中打印文字大括号字符,并使用.format吗?,但你只能知道,如果你知道格式函数使用与f字符串相同的规则.所以希望这个问题对于将f-string搜索者与这个答案联系起来是有价值的.

wim*_*wim 58

尽管解析器存在自定义语法错误,但同样的技巧与常规字符串相同.

使用双曲线:

>>> foo = 'test'
>>> f'{foo} {{bar}}'
'test {bar}'
Run Code Online (Sandbox Code Playgroud)

它在这里的规范和文档中提到.

  • 如果输出中需要双花卷,请使用四花卷:`f'{foo} {{{{bar}}}}'`。 (22认同)
  • 如果想将变量的值包装在“{}”中怎么办? (22认同)
  • @GeorgeIrwin 三重大括号就能解决这个问题 (8认同)