![Python核心编程从入门到开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/118/30638118/b_30638118.jpg)
2.5.2 内置的字符串处理函数
字符串拥有多种内置函数,掌握常见的字符串处理函数的使用方法是很有必要的。
1.获取字符串长度函数Ien(str)
len(str)函数用来返回对象(字符串、列表、元组等)的长度或项目个数。其中,str为获取对象。【范例2-29】代码如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/55_3.jpg?sign=1739241888-GmgVTpNFrD0FKfXjtsZFWGfJRdhmGJfB-0-4765541190a4cb8af7e5c7281d0fecaf)
此函数不仅可以获取字符串的长度,也可以获取其他数据类型的相关信息,如列表的元素个数和元组的成员个数。
2.字符串的大小写转换
在字符串的日常使用中,通常对字母的大小写有着严格的要求。下面简单介绍几个字符串大小写转换的相关函数。
如果需要将字符串进行大小写转换,那么可以使用str.upper()和str.lower()函数。【范例2-30】代码如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/56_1.jpg?sign=1739241888-qAOBIeS70dF33SyQCU4pH7JNDALV0AG6-0-8d3a0ab3be59fe88cdf6af1bd57e0725)
如果需要进行大小写互换,则可以使用str.swapcase()函数。【范例2-31】代码如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/56_2.jpg?sign=1739241888-3QmJx2pz9SCldqXB67kJPL6GGLrjN5bD-0-156b640edf126213dfce307494aefc79)
在英文书写中,有时需要将句子的第一个字母大写,此时可以使用str.capitalize()和str.title()函数。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/56_3.jpg?sign=1739241888-BEjbFou3k0gNTFghCffVoYizT6mpxqDy-0-4370a962ca60051278b4fd6178d02087)
3.字符串的查找
搜索相关字符串是程序中必不可少的功能。下面列举几个基础的字符串查找函数。
str.find(sub[,start[,end]])函数是基础的字符串查找函数,其使用方式也很灵活。
如果在字符串中未查找到指定字符,会返回-1;否则返回指定字符第一次出现位置的序列。第一个字符序列为0。
如果此时仅指定查找字符,其他参数默认,则函数默认从字符串左侧开始查找,直至字符串结束。代码如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/56_4.jpg?sign=1739241888-0mJTnfb4PCy3Tlb5YlLm3iw7WIpV9Em5-0-3c01e2cabfbdbefb2e0bb56bb35e6a26)
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/57_1.jpg?sign=1739241888-98RYMg0Rm6EFU0WaT2TtHYAaxzY9P3M7-0-2f6e04ea2a14f9971362ff40ca324a1b)
也可以指定查找开始和结束的字符位置,使查找更加灵活。格式为:str.find(需要查找的字符,开始位置,结束位置)。【范例2-32】代码如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/57_2.jpg?sign=1739241888-z0lFTA1nexH7Vr7dysNYHoEE6OnayFAi-0-dbfe6b621de76ece87f43a051f5b229a)
若同时指定查找开始和结束的字符位置,则只包含开始的序列,不包含结束的序列。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/57_3.jpg?sign=1739241888-YAubSiT2KZxAwdOMySgAsmQw6VBDtpeL-0-d8d4cec08a8f6a562c69b1c0e782516c)
还可以使用str.rfind(sub[,start[,end]])函数从字符串右侧开始查找。此时,返回值仍为第一次查找到的字符序列。总体用法和str.find(sub[,start[,end]])函数的用法相同。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/57_4.jpg?sign=1739241888-o1bdMm6zZl7YSbzFK42sVYoaCNr73Aje-0-fb499fea914a788260e5adeaa217b204)
此外,还有count()函数,用于统计字符串中指定字符出现的次数。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/57_5.jpg?sign=1739241888-rfwVlVnX2AECtHLyyDouJ9iXurQ0WvQ6-0-027040b44b81ff7da7c874ecdc87ae4a)
4.字符串的替换
字符串的替换功能可以方便用户进行字符串的管理和编辑。下面列举几个简单的字符串替换函数。
str.replace()函数是一个灵活的替换函数,可以指定替换的对象和替换的次数。
在下面的代码中,第2行指定了用'*'替换字符串中的字符'i';在第4行中添加了参数1,表示仅进行一次替换。默认从字符串左侧开始进行替换。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/58_1.jpg?sign=1739241888-uKjb8JE8nXSzQAJdgYMnUKrgyohylPD7-0-050d16f33510efabf6a6edb7aea5ea5e)
strip()函数用于移除字符串头尾指定的字符,默认移除空格。下述代码第2行表示移除字符串中的'cmowz.'字符。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/58_2.jpg?sign=1739241888-PGnHJMr5Ki1oCqzChf3B40caquwgu6dk-0-24ae8ca036fab5b98c1decc1e6ddde2d)
strip()函数还可用于移除空格,默认移除字符串两侧的空格。还可以指定方向,如lstrip()表示移除字符串左侧的空格,rstrip()表示移除字符串右侧的空格。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/58_3.jpg?sign=1739241888-8Sfxj0WtSxDFKSdjtmHxxXL67j6zFU9y-0-c148b4d238e2e043be050fbd467e26e6)