【发布时间】:2020-08-12 23:10:54
【问题描述】:
我们通常使用反斜杠来转义非法字符。
例如,转义双引号。
>>> "\"" == '"'
True
在 f 字符串中,大括号用于占位符。为了表示花括号,大括号是双倍的。
例如,
>>> f"{{}}" == "{}"
True
为什么在开发 f 弦时这种直观的方法不受欢迎?有什么技术或设计原因吗?
>>> f'\{\}'
File "<stdin>", line 1
SyntaxError: f-string expression part cannot include a backslash
【问题讨论】:
-
是的,这很奇怪。 ` f'{\{\}}` 也一样
-
这符合
str.format的现有转义规则。 -
这也是
%格式的%%,比如'%d%%' % 42=>'42%'。
标签: python string-formatting python-internals