![Python 3.7从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/31476212/b_31476212.jpg)
4.4 内置的字符串方法
在Python中,字符串的方法有很多,主要是因为字符串中string模块中继承了很多方法。本节将结几种常用的方法进行讲解。
4.4.1 capitalize()方法
capitalize()方法将字符串的第一个字符转化为大写,其他字符转化为小写。
capitalize()方法的语法格式如下:
str.capitalize()
其中,str为需要转化的字符串。下面通过示例来学习。
>>>str = "i can because I think I can" >>>tt=str.capitalize()+":我行,因为我相信我行!" >>>print (tt)
运行结果如图4-24所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P87_57214.jpg?sign=1739330611-EUQjqXBsKmMankLAflxc7CvS38AU9iuo-0-bd6473ca87ec2f77bebcf44269bbc8bf)
图4-24 运行结果
特别需要注意的是,如果字符串的首字符不是字母,那么该字符串中的第一个字符不会转换为大写,而转换为小写。
例如:
>>>str="123 I can because I think I can " >>>str.capitalize() >>>str="@ I can because I think I can " >>>str.capitalize()
运行结果如图4-25所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P88_8316.jpg?sign=1739330611-KRr2W3GPQtjSYGSnwIAE8wmgrtcGvIjl-0-dfb072a4cce7b4e134899cb9f0012792)
图4-25 运行结果
4.4.2 count()方法
count()方法用于统计字符串里某个字符出现的次数,可选参数为在字符串搜索的开始与结束位置。
count()方法的语法格式如下:
str.count(sub, start= 0,end=len(string))
其中,sub为搜索的子字符串;start为字符串开始搜索的位置,默认为第一个字符,第一个字符索引值为0;end为字符串中结束搜索的位置,默认为字符串的最后一个位置。
例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P88_57221.jpg?sign=1739330611-Z3SYyzXIRVxNHd8tilqHbnos5sPQljNT-0-c1b6f5a07bfd7634b5d72eb094e6988c)
运行结果如图4-26所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P88_8378.jpg?sign=1739330611-BPaaqbp5js2FCgW6HKhnkGhOORri0mY3-0-1b727ab5422300844e1efc8bf7e857e5)
图4-26 运行结果
4.4.3 find()方法
find()方法检测字符串中是否包含子字符串。如果包含子字符串,就返回开始的索引值;否则就返回-1。
find()方法的语法格式如下:
str.find(str, beg=0, end=len(string)
其中,str为指定检索的字符串;beg为开始索引,默认为0;end为结束索引,默认为字符串的长度。例如:
>>>str1 = "青海长云暗雪山,孤城遥望玉门关。" >>>str2 = "玉门" >>>print (str1.find(str2)) >>>print (str1.find(str2,10)) >>>print (str1.find(str2,13,15))
运行结果如图4-27所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P89_8437.jpg?sign=1739330611-j1kNCO3glx7AxGdTzKabLpQ6zoiWOP5z-0-d1b6a375d688a72068f47776fdfd2644)
图4-27 运行结果
4.4.4 index()方法
index()方法检测字符串中是否包含子字符串。如果包含子字符串,就返回开始的索引值,否则就会报一个异常。
index()方法的语法格式如下:
str.index(str, beg=0, end=len(string))
其中,str为指定检索的字符串;beg为开始索引,默认为0;end为结束索引,默认为字符串的长度。例如:
>>>str1 = "青海长云暗雪山,孤城遥望玉门关。" >>>str2 = ?"玉门" >>>print (str1.index(str2)) >>>print (str1.index (str2,10)) >>>print (str1.index(str2,13,15))
运行结果如图4-28所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P90_8492.jpg?sign=1739330611-xZgI3ur6ZmMFe2pNqcavrxRSy9DvWCZ7-0-e751a89230d932990f35038369cbfe23)
图4-28 运行结果
可见,该方法与find()方法一样,只不过如果str不在string中,就会报一个异常。
4.4.5 isalnum()方法
isalnum()方法检测字符串是否由字母和数字组成。
isalnum()方法语法格式如下:
str.isalnum()
如果字符串中至少有一个字符并且所有字符都是字母或数字,就返回True;否则就返回False。例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P90_57271.jpg?sign=1739330611-td5qrXxC6MsPp4XsLFICofQjsI7KG5Ik-0-3041a45443c234cf24705a79be1f4e9d)
运行结果如图4-29所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P90_8536.jpg?sign=1739330611-iGYc2JoYyOafaSTQ9qcGqNW037dGrPPZ-0-46ee9fcaa274fc5a73a12c66ce9634ab)
图4-29 运行结果
4.4.6 join()方法
join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
join()方法的语法格式如下:
str.join(sequence)
其中,sequence为要连接的元素序列。
例如:
>>>s1 ="" >>>s2 ="*" >>>s3 ="#" #字符串序列 >>>e1=("黄", "沙", "百", "战", "穿", "金", "甲") >>>e2=("不", "破", "楼", "兰", "终", "不", "还") >>>print (s1.join( e1 )) >>>print (s2.join( e2 )) >>>print (s3.join( e2 ))
运行结果如图4-30所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P91_8620.jpg?sign=1739330611-rLGiXBhBvrDOjBlZbE8BiAjb4iq15diG-0-92d633010f267d3a663f683089e782ea)
图4-30 运行结果
注意:被连接的元素必须是字符串,如果是其他的数据类型,运行时就会报错。
4.4.7 isalpha()方法
isalpha()方法检测字符串是否只由字母或汉字组成。如果字符串至少有一个字符并且所有字符都是字母或汉字,就返回True;否则就返回False。
isalpha()方法的语法格式如下:
str.isalpha()
例如:
>>>s1 = "Believe相信" >>>print (s1.isalpha()) >>>s1 = "大漠风尘日色昏,红旗半卷出辕门。" >>>print (s1.isalpha())
运行结果如图4-31所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P91_8662.jpg?sign=1739330611-D0R9Xy9Ja5CJK2EBn0FdB5lpCwkPI7jE-0-45995cee6e8ea90e15a4f2b475d4cfb8)
图4-31 运行结果
4.4.8 isdigit()方法
isdigit()方法检测字符串是否只由数字组成。如果字符串中只包含数字,就返回True;否则就返回False。
isdigit()方法的语法格式如下:
str.isdigit()
例如:
>>>s1 = "123456789" >>>print (s1.isdigit()) >>>s1 = "Believe123456789" >>>print (s1.isdigit())
运行结果如图4-32所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P92_8714.jpg?sign=1739330611-8B7Ps3DpzEqn0ADl8qxDWLN3Te2BqTUC-0-3d075b24476d2223eeb6e5933aead18a)
图4-32 运行结果
4.4.9 low()方法
low ()方法将字符串中的所有大写字符转化为小写字符。
low()方法的语法格式如下:
str.lower()
其中,str为指定需要转化的字符串,该方法没有参数。
例如:
>>>s1 ="HAPPINESS" >>>print('使用low()方法后的效果:',s1.lower()) >>>s2 ="Happiness" >>>print('使用low()方法后的效果:',s2.lower())
运行结果如图4-33所示。从结果可以看出,字符串中的大写字母全部转化为小写字母了。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P92_57242.jpg?sign=1739330611-u1ZfOiCXtrTb9ARTe4w5EndfCprN9ZcO-0-2349903714288dcfe6741f825d02776d)
图4-33 运行结果
如果想实现“不区分大小写”功能,就可以使用lower()方法,把要比较的字符串都转成小写再比较。例如,在一个字符串中查找某个子字符串并忽略大小写:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P92_57243.jpg?sign=1739330611-0FlSRqqTNZLNs4AFzYXNiVKjAKWjwnQa-0-1591529f1a8b3c4e5bb828e7e8f64297)
运行结果如图4-34所示。从结果可以看出,字符串中的大写字母全部转化为小写字母后,即可匹配到对应的子字符串。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P93_8810.jpg?sign=1739330611-FEmNBoFGcPOpgslM08zIHqatSUQRJSJl-0-3081b1bf699a41f0a82dfc9ed71fbc1b)
图4-34 运行结果
4.4.10 max()方法
max()方法返回字符串中的最大值。
max()方法的语法格式如下:
str.max()
其中,str为指定需要查找的字符串,该方法没有参数。
例如:
>>>s1 ="abcdefgh" >>>max(s1) >>>s2 ="abcdefghABCDEFGH " >>>max(s2)
运行结果如图4-35所示。从结果可以看出,若出现相同字母的大小写,则小写字母整体大于大写字母。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P93_8854.jpg?sign=1739330611-IHxgbgy13LZrvI1tRoKzfxxklBb7xY3i-0-aaff6ed4a7ef5405988e935228fd1262)
图4-35 运行结果
4.4.11 min()方法
min()方法返回字符串中的最小值。
min()方法的语法格式如下:
str.min()
其中,str为指定需要查找的字符串,该方法没有参数。
例如:
>>>s1 ="abcdefgh" >>>min(s1) >>>s2 ="abcdefghABCDEFGH " >>>min(s2)
运行结果如图4-36所示。从结果可以看出,若出现相同字母的大小写,则大写字母整体小于小写字母。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P94_8905.jpg?sign=1739330611-ybrulipfh3qhDdUW58DK3wFYlY8vTkjv-0-886ae9e39a32fa87cbe3d8f69d5da229)
图4-36 运行结果
4.4.12 replace()方法
replace()方法用于把字符串中的旧字符串替换为新字符串。
replace()方法的语法格式如下:
str.replace(old, new[, max])
其中,old为将被替换的子字符串;new为新字符串,用于替换old子字符串;max为可选参数,表示替换不超过max次。
例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P94_57271.jpg?sign=1739330611-NySBGDcyfa2h6AvyXk8rYOf9X4jLtDDy-0-055b8f7b5e1e7181c4d79dbc9d359420)
运行结果如图4-37所示。从结果可以看出,若制定第三个参数,则替换从左到右进行,替换次数不能超过指定的次数;若不指定第三个参数,则所有匹配的字符都将被替换。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P94_8967.jpg?sign=1739330611-2E2OBse5vREfwftru7r2PxOTKHTPsd71-0-748e1849c47e7c8239c10b630c4f921a)
图4-37 运行结果
4.4.13 swapcase()方法
swapcase()方法用于对字符串的大小写字母进行转换,即将字符串中小写字母转换为大写、大写字母转为小写。
swapcase()方法的语法格式如下:
str.swapcase ()
其中,str为指定需要查找的字符串,该方法没有参数。返回结果为大小写字母转换后生成的新字符串。
例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P95_57272.jpg?sign=1739330611-Cep3LGV1EEIk1tGnXnlDGmjS0vEQuzS1-0-9d1a3f6d9ad31dc1b17ec8ba8274fda4)
运行结果如图4-38所示。从结果可以看出,调用swapcase()方法后,字符串中的大小写将会进行相互转换。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P95_9015.jpg?sign=1739330611-qSgktrSh33cl5xNSqhjWm8x1NKPClz4C-0-6d3a2bee6172c50bf167f61081687570)
图4-38 运行结果
4.4.14 title()方法
title()方法返回“标题化”的字符串,即所有单词都以大写开始,其余字母均为小写。
title ()方法的语法格式如下:
str.title()
其中,str为指定需要查找的字符串,该方法没有参数。返回结果为大小写字母转换后生成的新字符串。
例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P95_57277.jpg?sign=1739330611-la87xmBVb3Tcg6F0PP9c2esXRI690bj5-0-d0c8f7047d6466a8e0bc17dbe99bfa45)
运行结果如图4-39所示。从结果可以看出,调用title()方法后,字符串中所有单词都以大写开始,其余字母均为小写。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P95_9054.jpg?sign=1739330611-4XrJCj4wteY8uDYozmWOfdSgU6rXNcjs-0-740b73fb830c12cddbe88686714bb7bb)
图4-39 运行结果