
3.5 文本类型——字符串
计算机经常要存储和处理文本信息,这些文本信息也被称为文本数据。文本信息在程序中使用字符串类型来表示。下面介绍在Python中如何表示文本数据。
3.5.1 表示方法
字符串是由字符组成的序列。在Python中,字符串是一个常量,常量的值是不会发生变化的。字符串采用引号将一个字符或多个字符括起来。引号可以是单引号('...')、双引号("...")和三引号("""...""")或('''...''')。使用不同的引号表示的字符串含义也不同。下面依次介绍每种字符串的表示方法。
1. 单引号表示法
单引号字符串是指由一对单引号('...')作为边界来表示的字符串。
【实例3-10】下面使用单引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:

(2)在交互模式中,执行代码并查看结果,如下:

输出结果也是一个单引号字符串。
2. 双引号表示法
双引号字符串是指由一对双引号("...")作为边界来表示的字符串。
【实例3-11】下面使用双引号表示字符串,并通过输出进行验证。
(1)编写的字符串如下:

(2)在交互模式中,执行代码并查看结果,如下:

输出结果是一个单引号字符串。
3. 单引号+双引号表示法
单引号+双引号表示法是指由一对单引号作为边界,双引号可以作为字符串的一部分。
【实例3-12】下面使用单引号+双引号表示字符串,并通过输出进行验证。
(1)编写的字符串如下:

(2)在交互模式中,执行代码并查看结果,如下:

从输出信息中可以看到,这是一个单引号字符串。字符串中的“双引号”字符使用了双引号,作为了字符串的一部分。
4. 双引号+单引号表示法
双引号+单引号表示法是指由一对双引号作为边界,单引号可以作为字符串的一部分。
【实例3-13】下面使用双引号+单引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:

(2)在交互模式中,执行代码查看结果,如下:

从输出信息中可以看到,这是一个双引号字符串。字符串中的“单引号”字符使用了单引号,作为了字符串的一部分。
5. 三引号表示法
上述字符串表示方法表示的字符串内容必须写在一行内。如果想表示多行字符串的内容,就需要使用三引号。三引号可以是三个单引号('''...'''),也可以是三个双引号("""...""")。因此,这种表示法有两种形式,但其作用是相同的。
【实例3-14】下面使用三引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:

(2)在交互模式中,执行代码并查看结果,如下:

输出信息将三引号表示法的字符串,输出为一行。为了更好地显示多行字符串效果,可以通过输出语句print()来实现,如下:

提示:在使用三引号表示法编写字符串时,如果在交互模式下,它是一个字符串,如果放在IDLE编辑器中,它将被视为注释信息,而不是字符串。
3.5.2 转义字符
Python的字符串还支持转义字符。转义字符是指使用反斜杠“\”与后面相邻的一个特殊字符共同表示一个新的含义。常用的转义字符含义如表3-3所示。
表3.3 常用的转义字符含义

【实例3-15】下面以对比的形式,比较不包含与包含转义字符的执行结果。
(1)书写不包含转义字符和包含转义字符的字符串,并输出查看,如下:

输出结果表示,书写的第1个字符串不包含转义字符,直接输出字符串内容的本身,输出在一行上。书写的第2个字符串包含转义字符“\n”,表示换行,因此,输出结果将字符串内容分成了两部分,并进行分行显示。
(2)如果要使字符串中包含转义字符,而不是Python把它当成转义字符使用,则需要在字符串的左边使用r或R来取消转义字符的作用。例如,将上面字符串中的“\n”作为字符串的一部分,而不是当作转义字符来用,代码及执行结果如下:

输出信息表示,字符串前面使用了r或R,输出信息的字符串中包含了转义字符“\n”。