【发布时间】:2018-01-23 19:50:24
【问题描述】:
我正在使用 Python 3.6。当 f-strings 和 print 语句在 Python 中一起使用时,我觉得下面的代码有点奇怪
person = {"name": "Jenne", "age": 23}
print(f"Person name is {person["name"]} and age is {person["age"]}")
上述语句导致错误
但是,当 print 语句中跨姓名和年龄的双引号替换为单引号时,它就像一个魅力。
print(f"Person name is {person['name']} and age is {person['age']}")
谁能解释一下这种行为?
【问题讨论】:
-
那是因为对字符串和字典键使用相同的引号会发生冲突。使用不同的引号可以解决问题。无论哪种方式,字符串的单引号和键的双引号,反之亦然。
-
@JonClements 你不能在 f 字符串表达式中转义引号,
'\'是不允许的 -
@AChampion 哦...将不得不阅读...我从未使用过它们,但听起来我做了一个错误的假设:)
-
@JonClements 哦,我也不知道。谢谢冠军!
-
@AChampion 啊哈……python.org/dev/peps/pep-0498/#id27 说明一切 - 谢谢。
标签: python python-3.x