![Python 3.7从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/31476212/b_31476212.jpg)
4.1 字符串的常用操作
前面章节中已经讲述了创建字符串的方法,本节开始学习字符串的常用操作。
4.1.1 访问字符串中的值
Python访问子字符串变量,可以使用方括号来截取字符串。
与列表的索引一样,字符串索引从0开始。例如:
>>>a="Believe in yourself" >>>a[0] >>>b="迟日江山丽,春风花草香。" >>>b[1]
运行结果如图4-1所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P78_7037.jpg?sign=1739534492-fIkn5ZKfG7OwoeKA2YnvMmI1r1ZLacys-0-aaab11d7c7c9546addaa317bb50e838e)
图4-1 运行结果
字符串的索引值可以为负值。若索引值为负数,则表示由字符串的结尾向前数。字符串的最后一个字符其索引值是-1,字符串的倒数第二个字符其索引值是-2。例如:
>>>a="Believe in yourself" >>>a[-1] >>>b="迟日江山丽,春风花草香。" >>>b[-2]
运行结果如图4-2所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P79_7082.jpg?sign=1739534492-gYNxLIro5Awl2GbtLboO9Y3ZXZmaPnEE-0-942de04d9ca7ac641c6e9e803e5c564c)
图4-2 运行结果
4.1.2 分割指定范围的字符
4.1.1小节讲述了访问任何一个位置的元素值的方法,本小节讲述如何分割指定范围的字符。
使用冒号(:)来分割指定范围的字符。使用方法如下:
a[x:y]
这里表示分割字符串a,中括号([])内的第1个数字x是要分割字符串的开始索引值,第2个数字y则是要分割字符串的结尾索引值。
提示 这里获取的字符只包含第1个数字x为索引值的字符,不包含第2个数字y为索引值的字符。
例如:
>>>a="Believe in yourself" >>>a[0:6] >>>b="迟日江山丽,春风花草香。" >>>b[1:4]
运行结果如图4-3所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P79_7127.jpg?sign=1739534492-CDkaKmwpWYVS3iAqchl2SZmIjQRWNnh8-0-549c4843998802596de580ee9e0fecdb)
图4-3 运行结果
如果省略开始索引值,分割字符串就由第一个字符到结尾索引值。例如:
>>>a="Believe in yourself" >>>a[:10] >>>b="迟日江山丽,春风花草香。" >>>b[:10]
运行结果如图4-4所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P80_7172.jpg?sign=1739534492-Vn4Mz2jfSUg8j347wTpaoZWN7UpnxY4o-0-f39c03f11183654f5f29a5f206296103)
图4-4 运行结果
如果省略结尾索引值,分割字符串就由开始索引对应的字符到最后一个字符。例如:
>>>a="Believe in yourself" >>>a[0:] >>>b="迟日江山丽,春风花草香。" >>>b[1:]
运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P80_7207.jpg?sign=1739534492-lYF3UWB46JrC3bGQmw1hwDbfm2Om32ZA-0-73b3d15150a52ad3611a6ccc33a37529)
图4-5 运行结果
省略开始索引值与结尾索引值时,分割字符串由第一个字符到最后一个字符。例如:
>>>a="Believe in yourself" >>>a[:] >>>b="迟日江山丽,春风花草香。" >>>b[:]
运行结果如图4-6所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P80_7243.jpg?sign=1739534492-w3y2zEjWV5z2u9jPMkbhTi3p5hpuuQZk-0-4b05166ad9b5059c9e2725c684ec62e0)
图4-6 运行结果
注意 Python不支持单字符类型,单字符在Python中也是作为一个字符串使用的。
4.1.3 更新字符串
默认情况下,字符串被设置后就不可以直接修改。一旦直接修改字符串中的字符,就会弹出错误信息:
>>>a="Believe in yourself" >>>a[1] = "w"
运行结果如图4-7所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P81_7279.jpg?sign=1739534492-lC8dg98dSz4oGVJUUDldIXlPXMznuICX-0-f454f274ccabbb2286068a7f8ca56e7e)
图4-7 运行结果
如果一定要修改字符串,可以使用访问字符串值的方法进行更新操作。例如:
>>>a="迟日江山丽,春春花草香。" >>>a=a[:7] + "风" + a[8:] >>>a
运行结果如图4-8所示。这里将字符串“迟日江山丽,春春花草香。”更改为“迟日江山丽,春风花草香。”
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P81_7307.jpg?sign=1739534492-eHYD5ikIUH7kfY97ekkGu3SOPjLkClUP-0-3c61d9e6c1c28f4278c6e266c6b6e707)
图4-8 运行结果
4.1.4 使用转义字符
有时候需要在字符串内设置单引号、双引号、换行符等,可使用转义字符。Python的转义字符是由一个反斜杠(\)与一个字符组成的,如表4-1所示。
表4-1 Python的转义字符
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-T81_57180.jpg?sign=1739534492-pnQset2LuHJt3lIlw7LjgA4bDbiWseDF-0-31f4970ae79ef05a7c1d21d57df35afe)
下面挑选几个常用的转义字符进行讲解。
1. 换行字符(\n)
下面的示例是在字符串内使用换行字符(\n):
>>>a="泥融飞燕子\n沙暖睡鸳鸯" >>>print(a)
运行结果如图4-9所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P82_7526.jpg?sign=1739534492-I6XNi0qzLXijocgzdJoZRMesodxS9HgN-0-6bd64e5d959d5e6215b128b71d6844a6)
图4-9 运行结果
2. 双引号(\")
下面的示例是在字符串内使用双引号("):
>>>a="对别人的意见要表示尊重。千万别说:\"你错了。\"" >>>print (a)
运行结果如图4-10所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P82_7550.jpg?sign=1739534492-wXX5ZblL9jh3XeORs4OnykHHE8DPfZy0-0-f06b17dffce3da7f9376579d192661a8)
图4-10 运行结果
3. 各进制的ASCII码
下面的示例是显示十六进制数值是48的ASCII码:
>>>a="\x48" >>>a
运行结果如图4-11所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P82_7585.jpg?sign=1739534492-MtJP61OWYQrmTb8lwNdpxRcxrM4Ru5Ui-0-b2cf53b8a85b4d2f5b533feb5ead18b5)
图4-11 运行结果
下面的示例是显示八进制数值是103的ASCII码:
>>>a= "\103" >>>a
运行结果如图4-12所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P82_7586.jpg?sign=1739534492-MoINHXPGleofw7KfY0APfV8rrCY7mIny-0-016bfa314b47ef55ed325cbff7bfdced)
图4-12 运行结果
4. 加入反斜杠字符
如果需要在字符串内加上反斜杠字符,就必须在字符串的引号前面加上"r"或"R"字符。下面的示例是字符串包含反斜杠字符。
>>>print (r"\d") >>>print (R"\e,\f,\e")
运行结果如图4-13所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P83_7625.jpg?sign=1739534492-zKXphxcba0TVvn7Uns4N6iUxIFq2Mi10-0-ff97f62685564ab907a487717e202ca9)
图4-13 运行结果