双引号出现时它应该是单引号Python 3

时间:2016-07-09 18:40:19

标签: python-3.x

我目前正在阅读“Zed,Shaw的艰难学习Python”一书中的练习 虽然作者指出他的书是针对Python 2.x的,但我正在设法将书中的语法转换为python 3标准。

但是,有一件奇怪的事情。在他正在解释%r的不同用法的练习中,解释器用双引号打印其中一个字符串值,而其他字符串用单引号打印。
我想知道原因,请。

以下是代码:

formatter = " %r %r %r %r"
print (formatter % ( "I had this thing",
   "That you could type up right.",
   "But it didn't sing.",
   "So I said goodnight."))

代码工作正常,只是在解释器中,输出读取:

  

'我有这个东西','你可以输入正确的。' “但我没唱歌。” “所以我说晚安。”

如您所见,第三个值打印在双引号内。怎么样?

我正在使用notepad ++,python 3和Windows Powhershell。 谢谢

1 个答案:

答案 0 :(得分:2)

“但它没有唱歌。”因为这个字符串包含单引号,所以它被打印在双引号内。

此外,%r将插入对象的规范字符串表示(即repr(o))

要详细了解 repr(),请阅读Python3官方文档:https://docs.python.org/3/library/functions.html#repr