字符串字面量——单双引号字符串是一样的

未匹配的标注

关于Python字符串,单双引号字符串是可互换的。也就是说,字符串字面量能被包裹在两个单引号或双引号之间——这两种形式是一样的并且返回同样类型的对象。比如,一旦编码后,下面两个字符串完全相同:

>>> 'shrubbery', "shrubbery"
('shrubbery', 'shrubbery')

支持两种引号的原因是让你可以在字符串中嵌入另一种引号而无需使用反斜杠。可以在双引号包裹的字符串中嵌入单引号,反之亦然:

>>> 'knight"s', "knight's"
('knight"s', "knight's")

本书一般倾向于使用引号包裹字符串,只是因为它们稍微容易读(除了在单引号被嵌入字符串中时)。这纯粹是主观样式选择,但Python也是用这种方式显示字符串的,而且当今大多数Python程序员都是这样做的,所以你最好也这么做。

注意这里的逗号很重要。没有它,Python会自动连接表达式中邻近的字符串字面量,虽然在它们之间添加 + 号来明确地调用连接也是几乎一样简单(在第12章会看到:将这种形式包裹在小括号中可以扩展多行):

>>> title = "Meaning " 'of' " Life" # 隐式连接
>>> title
'Meaning of Life'

在这些字符串之间添加逗号会导致一个元组,而非字符串。还注意在所有这些输出中,Python以单引号打印字符串除非它们嵌套了单引号。如果需要,还可以通过使用反斜杠转义它们来嵌套引号字符:

>>> 'knight\'s', "knight\"s"
("knight's", 'knight"s')

要理解原因,需要知道转义一般是如何工作的。


如何将这种形式包裹在小括号中可以扩展多行?

long_string = ("This is a long string that spans "
               "multiple lines. You can break it into "
               "pieces and concatenate them using the + "
               "operator, or enclose them in parentheses "
               "to make it easier to read and maintain.")
print(long_string)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~