2016-07-09 95 views
0

我目前正在从“通过Zed,Shaw学习Python的难题”一书中做练习。
尽管作者指定他的书是为Python 2 .x,我正在设法将本书的语法转换为python 3标准。当双引号应该是单引号时出现双引号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.")) 

的代码工作正常,它只是在解释器,输出写着:

“我有这个事”,“你可以输入最多对。' “但我没有唱歌。” “所以我说晚安。”

正如你所看到的,第三个值被打印在双引号内。怎么来的 ?

我使用记事本++,python 3和Windows Powhershell。 谢谢

回答

2

“但它没有唱歌。”由于该字符串包含单引号,因此将在双引号内打印。

此外,%R将插入对象的规范的字符串表示(即再版(O))

要了解更多关于再版()阅读Python3官方文档:https://docs.python.org/3/library/functions.html#repr

+0

当然的,但!我应该想到它。已经有一个没有收缩的撇号,所以它必须使用双引号。谢谢 [ : – randomhopeful