Python 3.12 与旧版本的 f 字符串中的嵌套引号[重复]

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

使用 Python 3.12,我可以毫无错误地执行以下操作:

a = "abc"
s = f"{a.replace("b", "x")}"

注意嵌套的

"
字符。

对于 Python 3.6,同样会抛出语法错误,因为这部分中缺少关闭

)
}
f"{a.replace("

这是为什么呢?我预计 3.12 也会出现语法错误。

python python-3.x f-string
2个回答
1
投票

Python 3.12 实现 PEP 701,允许使用与外部 f 字符串本身相同的引号字符

>>> songs = ['Take me back to Eden', 'Alkaline', 'Ascensionism']
>>> f"This is the playlist: {", ".join(songs)}"
'This is the playlist: Take me back to Eden, Alkaline, Ascensionism'

因此,如果您在一个系统上运行 3.12,而在另一个系统上运行旧版本,则差异是可以预料的。


0
投票

您可以将

"
更改为
'

s = f'{a.replace("b", "x")}'
© www.soinside.com 2019 - 2024. All rights reserved.