![Python编程基础与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/854/41309854/b_41309854.jpg)
1.3.6 字符串及其基本操作
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_03.jpg?sign=1739533556-QJ9e7vTYSGdSjmI7w37JupzUHMLthDQa-0-2ab20f0472c5967c8e53c6eb0f73c642)
1-6 字符串及其基本操作
字符串(String)就是若干个字符的集合,Python中的字符串必须由双引号("")或者单引号(' ')包围,其双引号和单引号没有任何区别,具体格式为:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_04.jpg?sign=1739533556-mw5aLXN2jFUz97skFNJtxMmOgOco6OOu-0-57fd5532f26f6eacaf1bde2307b66476)
字符串的内容可以包含字母、标点、特殊符号、中文、日文、韩文等全世界的所有文字。
下面都是合法的字符串:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_05.jpg?sign=1739533556-DW2UiSPUQfPrtgJ2kkzN4DYyjTaDfd2F-0-6dc49771cbd4bd8095e1cf0f2c5467f8)
1.处理字符串中的引号
当字符串内容中出现引号时,用户需要进行特殊处理,否则Python会解析出错,例如:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_06.jpg?sign=1739533556-77XUeQlEHhkZZCTBzDffHAhlJN9Q7rRl-0-fe5200d554e8fb3bf02e948a2d673b9e)
由于上面字符串中包含了单引号,此时Python会将字符串中的单引号与第一个单引号配对,这样就会把'I'当成字符串,而后面的m a great coder!'就变成了多余的内容,从而导致语法错误。
对于这种情况,一般有以下两种处理方案。
(1)对引号进行转义
在引号前面添加反斜杠“\”就可以对引号进行转义,让Python把它作为普通文本对待。
【例1-14】 反斜杠“\”的使用。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_01.jpg?sign=1739533556-0gJ1zyefYxOFCIummneAJdMJ70aLtqoY-0-55e451b0abe47ebe8806475821602de1)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_02.jpg?sign=1739533556-lsUElBos7hgO6p9BOqxyZISUP7ZQqwC5-0-c0d70170a5b61a343023811d8694db9f)
(2)使用不同的引号包围字符串
如果字符串内容中出现了单引号,那么可以使用双引号包围字符串,反之亦然。
【例1-15】 使用不同的引号包围字符串。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_03.jpg?sign=1739533556-v0q0BDee3la14YKfBchMIegrkXBVqDeY-0-f34adb1fcf6b94e75382022016e7f87d)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_04.jpg?sign=1739533556-roOIZZDHzX3YLChbBoacHLtr9qSCnlDi-0-2d866b6f5e836eea2e3e841cb575a3ee)
2.字符串的换行
Python不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。要想换行书写一个比较长的字符串,必须在行尾添加反斜杠“\”。Python也支持表达式添加反斜杠“\”的换行。
3.长字符串
Python长字符串由三个双引号(""")或者3个单引号(''')包围,语法格式如下:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_05.jpg?sign=1739533556-8irbqOui8447scjLV76g7KZLkoCDdPl1-0-070ff2955019211ae2f9dfd5c1ac21e5)
在长字符串中放置单引号或者双引号不会导致解析错误。
4.转义字符
对于ASCII编码来说,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过直接使用ASCII码记忆不方便,也不容易理解,所以针对常用的控制字符,Python语言定义了转义字符方式,如表1-2所示。
表1-2 Python支持的转义字符
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_01.jpg?sign=1739533556-g4uiJXVcDEBaXVvX80RmDVWeYSclL4Th-0-19cfc36db6269fdc079503927da54d99)
转义字符在书写形式上由多个字符组成,但Python将它们看作是一个整体,表示一个字符。
【例1-16】 使用转义字符来打印表格。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_02.jpg?sign=1739533556-ik4v6K3MlCIVv5lxXCIhwa5TlhRNYaUl-0-ac61b2ef0e00ccf241c7aadcd5cb911c)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_03.jpg?sign=1739533556-AKCjiIQuvbBYIUgQDNtou9BJHddNntth-0-549faf97e7810cfae26b76a01132c22d)
此外,转义字符以“\0”或者“\x”开头的表示编码值,前者表示跟八进制形式的编码值,后者表示跟十六进制形式的编码值,具体格式如下:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_04.jpg?sign=1739533556-YSJQYLLkNEUzmRvW5T6BRZNDHu0GhwnO-0-5866fa5b81cb78b285e0eebceaa6a7bb)
式中,dd表示八进制数字,hh表示十六进制数字。由于ASCII编码共收录了128个字符,\0和\x后面最多只能跟两位数字,所以八进制形式\0并不能表示所有的ASCII字符,只有十六进制形式\x才能表示所有ASCII字符。
【例1-17】 使用八进制、十六进制来显示ASCII码。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/34_01.jpg?sign=1739533556-6uFXqYPoYtbcGINLG0GG8kJhVHWUaNgJ-0-7811c73a199307b4f87d28ba2cb7a6f1)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/34_02.jpg?sign=1739533556-glFCcsnfEX8s4ctQSXEKFYVCvoVQ4mje-0-5762edf01caa7305f67674c20dbb95a8)
从例中可以看出,字符4、5、6对应的ASCII码八进制形式分别是64、65、66,字符B、D、F、H、J、L的十六进制形式分别是42、44、46、48、4A、4C。