【发布时间】:2023-06-22 09:44:01
【问题描述】:
我有一个字符串,我想要花括号,但也利用 f-strings 功能。是否有一些适用于此的语法?
这里有两种方法不起作用。我想将文字文本 {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}'
编辑:看起来这个问题的答案与How can I print literal curly-brace characters in a string and also use .format on it? 相同,但只有知道str.format 使用与f-string 相同的规则才能知道。所以希望这个问题在将 f-string 搜索者与这个答案联系起来时有价值。
【问题讨论】:
-
您可以将'{'和'}'替换为它们对应的代码点
\u007b和\u007d。例如print(' \u007b \u007d')得到{ } -
这实际上应该是一个/答案,因为如果您想打印单个大括号,则将大括号加倍不起作用。哦,我现在是不是觉得很脏。
-
@stefanct 你是什么意思不起作用?
f'{{1{2}'正确返回'{12',不是吗? -
是的,但是有很多情况下它不起作用,例如,
f'{{}'->SyntaxError: f-string: single '}' is not allowed -
@stefanct 仍然没有看到问题 - 你认为应该返回什么?如果您不格式化任何字段,为什么要使用 f 前缀?
标签: python python-3.x curly-braces f-string