![零基础学Python程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/24/43738024/b_43738024.jpg)
3.5 文本类型——字符串
计算机经常要存储和处理文本信息,这些文本信息也被称为文本数据。文本信息在程序中使用字符串类型来表示。下面介绍在Python中如何表示文本数据。
3.5.1 表示方法
字符串是由字符组成的序列。在Python中,字符串是一个常量,常量的值是不会发生变化的。字符串采用引号将一个字符或多个字符括起来。引号可以是单引号('...')、双引号("...")和三引号("""...""")或('''...''')。使用不同的引号表示的字符串含义也不同。下面依次介绍每种字符串的表示方法。
1. 单引号表示法
单引号字符串是指由一对单引号('...')作为边界来表示的字符串。
【实例3-10】下面使用单引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-1.jpg?sign=1738847515-Do7Bt56feP1kIwjKWNcQym8Geldnj0zG-0-57898f3c42ce32f2064ac8c7d67887bf)
(2)在交互模式中,执行代码并查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-2.jpg?sign=1738847515-pNT1zrAM8AT2k1eNwrV4tFXl7Oaa3dKg-0-c528cfbaa8d1ee10c48b65243343d97d)
输出结果也是一个单引号字符串。
2. 双引号表示法
双引号字符串是指由一对双引号("...")作为边界来表示的字符串。
【实例3-11】下面使用双引号表示字符串,并通过输出进行验证。
(1)编写的字符串如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-3.jpg?sign=1738847515-4O7yit9H6WOAYEKQs2KxbZsRpsNE9uiM-0-af410e0c3b7749d3ea68715da0572b8e)
(2)在交互模式中,执行代码并查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-4.jpg?sign=1738847515-NfkMesgWjs6ykGxwy37bOeSS95CJKpla-0-e75bb3ce8f4a696df10da79c2b3a85f3)
输出结果是一个单引号字符串。
3. 单引号+双引号表示法
单引号+双引号表示法是指由一对单引号作为边界,双引号可以作为字符串的一部分。
【实例3-12】下面使用单引号+双引号表示字符串,并通过输出进行验证。
(1)编写的字符串如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-5.jpg?sign=1738847515-0IuMuMg15GTWcmGbrCOvqQoe7g1wQpri-0-160065341c2ad85f42c258d72bc44b96)
(2)在交互模式中,执行代码并查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-6.jpg?sign=1738847515-FBa32UpCAKtBMPz802DhvU31hlblbEgJ-0-5d5ebd66b993279361cb5e082474b97d)
从输出信息中可以看到,这是一个单引号字符串。字符串中的“双引号”字符使用了双引号,作为了字符串的一部分。
4. 双引号+单引号表示法
双引号+单引号表示法是指由一对双引号作为边界,单引号可以作为字符串的一部分。
【实例3-13】下面使用双引号+单引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-7.jpg?sign=1738847515-yiTCuodyzNGZf7ixgMcMPQSwVQl648f4-0-78762a209a2023b50e5eb7117050f3ca)
(2)在交互模式中,执行代码查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-70-8.jpg?sign=1738847515-EPkD8DWG2COhRsI8nVbmikQib30U0od9-0-579af49a2019f90de9c1ae13bed57963)
从输出信息中可以看到,这是一个双引号字符串。字符串中的“单引号”字符使用了单引号,作为了字符串的一部分。
5. 三引号表示法
上述字符串表示方法表示的字符串内容必须写在一行内。如果想表示多行字符串的内容,就需要使用三引号。三引号可以是三个单引号('''...'''),也可以是三个双引号("""...""")。因此,这种表示法有两种形式,但其作用是相同的。
【实例3-14】下面使用三引号表示字符串,并通过输出进行验证。
(1)书写的字符串如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-71-1.jpg?sign=1738847515-B8kbD4OftvY5P6WaNuFslzvBmOlrEyQC-0-dbb34976497a7c10cb861acb88ee21f6)
(2)在交互模式中,执行代码并查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-71-2.jpg?sign=1738847515-5gdNVfUv0ZJvfCXYRvV6LFY0lmtF8rIq-0-853298364a37c403c7ee6a06947b5486)
输出信息将三引号表示法的字符串,输出为一行。为了更好地显示多行字符串效果,可以通过输出语句print()来实现,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-71-3.jpg?sign=1738847515-pIpyMnzOZLUWyDHPYOm1JTSYeQYja6nF-0-6c1574865a08a2c13f58fff14c0d80bd)
提示:在使用三引号表示法编写字符串时,如果在交互模式下,它是一个字符串,如果放在IDLE编辑器中,它将被视为注释信息,而不是字符串。
3.5.2 转义字符
Python的字符串还支持转义字符。转义字符是指使用反斜杠“\”与后面相邻的一个特殊字符共同表示一个新的含义。常用的转义字符含义如表3-3所示。
表3.3 常用的转义字符含义
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-71-4.jpg?sign=1738847515-ygIgLXxIbyZ3vJkBAUSITudYF5NsU0fA-0-7ddcb16d6c9998d43d3adb9a841564df)
【实例3-15】下面以对比的形式,比较不包含与包含转义字符的执行结果。
(1)书写不包含转义字符和包含转义字符的字符串,并输出查看,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-72-1.jpg?sign=1738847515-JcPY1W6rzkAi9txXDciy0CwOqcKBpAzX-0-5e4f72c2a6a943f331e31ac66a34cb1d)
输出结果表示,书写的第1个字符串不包含转义字符,直接输出字符串内容的本身,输出在一行上。书写的第2个字符串包含转义字符“\n”,表示换行,因此,输出结果将字符串内容分成了两部分,并进行分行显示。
(2)如果要使字符串中包含转义字符,而不是Python把它当成转义字符使用,则需要在字符串的左边使用r或R来取消转义字符的作用。例如,将上面字符串中的“\n”作为字符串的一部分,而不是当作转义字符来用,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-72-2.jpg?sign=1738847515-NmHUOg2hpRX0EBRQ76tQXNyY0IKM2pzr-0-23c7e2ab5702eb7c181de1c23b75da99)
输出信息表示,字符串前面使用了r或R,输出信息的字符串中包含了转义字符“\n”。