python新手,我正在学习本教程: http://learnpythonthehardway.org/book/ex8.html
我只是看不出为什么这行“但它没有唱歌”。用双引号打印出来,所有其他的都打印了单引号..看不出代码有什么不同......
答案 0 :(得分:1)
值的表示应该等同于生成它所需的Python代码。由于字符串“但它没有唱歌”。包含单引号,使用单引号分隔它会创建无效代码。因此使用双引号。
答案 1 :(得分:1)
引号取决于字符串:如果没有引号,它将使用简单的引号:
>>> """no quotes"""
'no quotes'
如果有单引号,它将使用双引号:
>>> """single quote:'"""
"single quote:'"
如果有双引号,它将使用单引号:
“”“双引号:”“”“ '双引号:''
如果两者都有,它将使用单引号,因此转义单引号:
>>> """mix quotes:'" """
'mix quotes:\'" '
>>> """mix quotes:"' """
'mix quotes:"\' '
>>> '''mix quotes:"' '''
'mix quotes:"\' '
打印字符串时没有区别:
>>> print '''mix quotes:"' '''
mix quotes:"'
周围的引号用于表示字符串:
>>> print str('''mix quotes:"' ''')
mix quotes:"'
>>> print repr('''mix quotes:"' ''')
'mix quotes:"\' '
您可能想检查字符串上的python tutorial。
答案 2 :(得分:0)
Python有几条输出repr
字符串的规则。
通常情况下,它使用'
来围绕它们,除非其中有'
- 然后它使用"
来消除引用的需要。
如果字符串同时包含'
和“characters, it uses
”s and quotes the
“`。
由于字符串可能有多个有效和等效的表示形式,因此这些rues可能会因版本而异。
顺便说一下,在链接到答案的网站上也给出了:问:为什么
%r
有时会用双引号打印单引号?答:Python将以最有效的方式打印字符串,而不是完全按照您编写它们的方式复制。这是完全正常的,因为
%r
用于调试和检查,因此它没有必要漂亮。