Python 某些%r格式以双引号而不是单引号开始和结束
我有两个类似的python代码Python 某些%r格式以双引号而不是单引号开始和结束,python,Python,我有两个类似的python代码 formatter = "%r %r %r %r" print formatter % ( "I had this thing", "That you could type upright", "But it didn't sing", "So I said goodnight" ) print formatter % ( "hi!", "My name is __!", "nice to meet you!
formatter = "%r %r %r %r"
print formatter % (
"I had this thing",
"That you could type upright",
"But it didn't sing",
"So I said goodnight"
)
print formatter % (
"hi!",
"My name is __!",
"nice to meet you!",
"thank you!"
)
另一个被打印为“”,但在第一个代码中,唯一的第三个短语被打印为“但它没有唱”。
为什么会出现双引号
结果:
“我有这个东西。”“你可以输入正确的东西。”“但是它没有唱。”“所以我说晚安。”好的,这是因为函数返回对象的可打印表示形式。我的意思是,在其他短语中,您没有使用单引号字符”
,因此不需要使用双引号“
。这相当于说:
'But it didn\'t sing'
但是,Python解释器将尝试遵循(使用到最简单的选项)。在这种情况下,最简单的选项是使用双引号,并将单引号放在其中。例如,尝试以下短语:
"My name is \"__!\""
您将看到它正在打印:
“我的名字是”\uuuu!“
(最简单的选项)第三行中没有包含单引号。同样,按照最佳实践,您应该始终使用单引号。这意味着,鉴于“我有这个东西”使用了不必要的双引号,解释器将使用单引号,意思是‘我有这个东西’。在第三种情况下,您将”但是它没有唱。“在这种情况下,双引号是必要的,因为中间有一个引号。通常你总是使用单引号,当你需要特殊的东西时,你使用双引号,这就是解释器正在做的。