Python 基础教程(3rd ed)(18):快速上手:基础知识 1.11.1

阅读数:36 2019 年 10 月 26 日 09:30

Python基础教程(3rd ed)(18):快速上手:基础知识 1.11.1

(字符串:单引号字符串以及对引号转义)

与数一样,字符串也是值:

复制代码
>>> "Hello, world!"
'Hello, world!'

在这个示例中,有一点可能让你颇感意外:Python 在打印字符串时,用单引号将其括起,而我们使用的是双引号。这有什么差别吗?其实没有任何差别。

复制代码
>>> 'Hello, world!'
'Hello, world!'

这里使用的是单引号,结果却完全相同。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用。

复制代码
>>> "Let's go!"
"Let's go!"
>>> '"Hello, world!" she said'
'"Hello, world!" she said'

在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单引号将整个字符串括起,否则解释器将报错(做出这样的反应是正确的)。

复制代码
>>> 'Let's go!'
SyntaxError: invalid syntax

在这里,字符串为'Let',因此 Python 不知道如何处理后面的s(更准确地说是当前行余下的内容)。

第二个字符串包含双引号,因此必须使用单引号将整个字符串括起,原因和前面一样。实际上,并非必须这样做(这样做只是出于方便考虑)。可使用反斜杠(\)对引号进行转义,如下所示:

复制代码
>>> 'Let\'s go!'
"Let's go!"

这样 Python 将明白中间的引号是字符串的一部分,而不是字符串结束的标志。虽然如此,Python 打印这个字符串时,还是使用了双引号将其括起。与你预期的一样,对于双引号可采用同样的处理手法。

复制代码
>>> "\"Hello, world!\" she said"
'"Hello, world!" she said'

像这样对引号进行转义很有用,且在有些情况下必须这样做。例如,在字符串同时包含单引号和双引号(如'Let\'s say "Hello, world!"')时,如果不使用反斜杠进行转义,该如何办呢?

注意 厌烦了反斜杠?你在本章后面将看到,在大多数情况下,可通过使用长字符串和原始字符串(可结合使用这两种字符串)来避免使用反斜杠。

评论

发布