所以我正在经历“以艰难的方式学习Python”
并且这样做:
formatter = "%r %r %r %r"
print formatter % (
"I had this thing.",
"That you could up right.",
"But it didn't sing.",
"So I said goodnight"
)
输出
'I had this thing.' 'That you could up right.' "But it didn't sing." 'So I said goodnight'
但我不确定为什么第3个字符串有双字符串。
答案 0 :(得分:6)
"a"
和'a'
是相同的字符串,没有区别。
第三个字符串包含一个撇号,因此它不能表示为'But it didn't sing.'
,因为这会在didn
之后结束字符串并引发SyntaxError
。
如果您想用单引号表示字符串,可以这样做:
"'"
或
'\''
双引号相同:
'"'
或
"\""
如果你有一个带两个引号的字符串,你可以选择一个:
'"\'"
或
"\"'"
答案 1 :(得分:2)
因为第三个字符串是'But it didn't sing'
- 由于三个撇号会产生语法错误,而且,如果逻辑上修复(最后再添加一个'会删除错误),你会卡住了两个字符串 - 1. 'But it didn'
和2. 't sing'
,这是不正确的。
所以要回答你的问题,“”在字符串中提供完全相同的函数,但是在可能引起语法错误时使用,例如英语中没有,不能或类似的单词。
答案 2 :(得分:1)
第三个字符串中包含'
字符,这就是使用"
来表示它的原因。尝试从字符串#3中删除'
,您会看到代表更改为'
字符串'
。字符串是相同的,只是它们的表示不同。