![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=1739531737-AcsxYdGz25dglYc0f9RNW8hZ1s3jH37v-0-c28bcaac1f6d275f316fad0586bb4c74)
1-6 字符串及其基本操作
字符串(String)就是若干个字符的集合,Python中的字符串必须由双引号("")或者单引号(' ')包围,其双引号和单引号没有任何区别,具体格式为:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_04.jpg?sign=1739531737-jJyn6JFScsOlGXg8lDAOo8jGZYgLvAQg-0-975c809855d49c86c5dc6b722713e455)
字符串的内容可以包含字母、标点、特殊符号、中文、日文、韩文等全世界的所有文字。
下面都是合法的字符串:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_05.jpg?sign=1739531737-CdFZpN4P50Sl5QsOy1eOz4tLpuItxNs6-0-2615f71aa4b5f95955abe33856215730)
1.处理字符串中的引号
当字符串内容中出现引号时,用户需要进行特殊处理,否则Python会解析出错,例如:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/31_06.jpg?sign=1739531737-1QTvjeX6nsLQy8HNmPjMCxqV8N3NXTSW-0-f8cd56347595c3172e6e04e1802c598b)
由于上面字符串中包含了单引号,此时Python会将字符串中的单引号与第一个单引号配对,这样就会把'I'当成字符串,而后面的m a great coder!'就变成了多余的内容,从而导致语法错误。
对于这种情况,一般有以下两种处理方案。
(1)对引号进行转义
在引号前面添加反斜杠“\”就可以对引号进行转义,让Python把它作为普通文本对待。
【例1-14】 反斜杠“\”的使用。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_01.jpg?sign=1739531737-DUe3DoIgFC0npHCS9THcqXNJLsM2FaVZ-0-149c06dbfe0539806acdbdd1d715b45b)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_02.jpg?sign=1739531737-LodG6KCOtXV5O2bdKDvLt9YjAW7fg8Mq-0-a5ecb51e79ba2fb2b4c7e4b75d6e6336)
(2)使用不同的引号包围字符串
如果字符串内容中出现了单引号,那么可以使用双引号包围字符串,反之亦然。
【例1-15】 使用不同的引号包围字符串。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_03.jpg?sign=1739531737-bFhMHO5zH0h0e3UAm9WSg6x6VsfcXJzH-0-1543249ec632604ae2d971e4973a2803)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_04.jpg?sign=1739531737-GaTA90S10VztXdq6ikJl4deLaBXzNlj5-0-f5be70f020453a77796b271700802a81)
2.字符串的换行
Python不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。要想换行书写一个比较长的字符串,必须在行尾添加反斜杠“\”。Python也支持表达式添加反斜杠“\”的换行。
3.长字符串
Python长字符串由三个双引号(""")或者3个单引号(''')包围,语法格式如下:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/32_05.jpg?sign=1739531737-kb5IygxBTQzX9n8IpVIWQkc8haK0rAdW-0-d3d49f7458ad109636ba05decd53f5d2)
在长字符串中放置单引号或者双引号不会导致解析错误。
4.转义字符
对于ASCII编码来说,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过直接使用ASCII码记忆不方便,也不容易理解,所以针对常用的控制字符,Python语言定义了转义字符方式,如表1-2所示。
表1-2 Python支持的转义字符
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_01.jpg?sign=1739531737-gprgyTl98UCeBvclqXkQg8Zd9iMfcdAE-0-f28f2b6d241a03958d0c8788689cef29)
转义字符在书写形式上由多个字符组成,但Python将它们看作是一个整体,表示一个字符。
【例1-16】 使用转义字符来打印表格。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_02.jpg?sign=1739531737-pZWmd886q7yBQrogU6lPri8gBSrzfKUz-0-e9528032179cd0b80c1ade27c6172cec)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_03.jpg?sign=1739531737-ZGAOlwJx4mVIbXA824s2vXvZ6mVBvTMM-0-03cc8f2f51389cdf91ddbc456b06c2bd)
此外,转义字符以“\0”或者“\x”开头的表示编码值,前者表示跟八进制形式的编码值,后者表示跟十六进制形式的编码值,具体格式如下:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/33_04.jpg?sign=1739531737-Dc7V0JcpY20wARI6oIwtT814rLva5UOL-0-d6efef9c10b8cb429eb4f5f1d5506876)
式中,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=1739531737-DcY6WEMjf7UF6FskuC21ThAkeghNOwMw-0-4c03f4651d5c3a64165bc39e9e1d88ec)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/34_02.jpg?sign=1739531737-2LixPxtOHka8rbA6LuJ37S8wYGkXqGfu-0-4cbdf35a2e1dbc1e7a7bbd369ade7f34)
从例中可以看出,字符4、5、6对应的ASCII码八进制形式分别是64、65、66,字符B、D、F、H、J、L的十六进制形式分别是42、44、46、48、4A、4C。