在python中使用格式化打印的双引号和单引号

时间:2016-01-05 08:28:06

标签: python string output

所以我正在经历“以艰难的方式学习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个字符串有双字符串。

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中删除',您会看到代表更改为'字符串'。字符串是相同的,只是它们的表示不同。