![Python实战指南:手把手教你掌握300个精彩案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/214/44510214/b_44510214.jpg)
1.5 str类的常用方法
案例24 转换字母的大小写
导语
str类公开了两个方法可以转换字母的大小写。lower方法返回新的字符串案例,并将传入的字符串中的大写字母转换为小写字母;upper方法的功能与lower方法正好相反,将小写字母转换为大写字母。
操作流程
步骤1:将字符串中的小写字母转换为大写字母。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80250.jpg?sign=1738861288-LH8dYKV8YZAUwzaTTMFENLmQb6CCREWA-0-b9ca83d0fb4664a351f2d77c372e1031)
第一次调用upper方法时,字符串案例中包含的全是大写字母,因此会把所有字符都转换为大写字母;第二次调用时,字符串案例中只有“klmn”是小写字母,所以在返回时只有这几个字符被转换为大写字母。
输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80251.jpg?sign=1738861288-aJfnhmRyG1pEMbIK3sjkD1Sy29LugdAo-0-ee36b3b45e57578372b966c3bf74a0c7)
步骤2:以下代码将大写字母转换为小写字母。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80252.jpg?sign=1738861288-RLvI87RLHaKSBrm9jrt9sD4UJjsnD5uL-0-26391e2d73bb2d109d3085832a1f11c9)
与upper方法同理,字符串案例中大写字母会被转换为小写字母,而小写字母无须处理。输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80253.jpg?sign=1738861288-Y2FiGqznBj9K6NnqbRErkqwgAmj9rgix-0-28583439badf84ef4b789189def4f8b7)
步骤3:但是,对于中文与数字字符,lower和upper方法皆不起作用。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80254.jpg?sign=1738861288-COMquBsruAJwdDg4sCxh27Wm71Rwuclf-0-191470d3a9fc29143e7403eb743fb344)
方法调用后,按原字符输出。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80255.jpg?sign=1738861288-Xi6ECNwlPlgAAcByyXKvxseOmJ0dJZrV-0-2e94e651558a79167723981332edccf2)
注意:swapcase方法也可以转换字母的大小写,此方法会将原字符串中的大写字母转换成小写字母,将小写字母转换成大写字母。例如:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80256.jpg?sign=1738861288-YCC095LbgZsKc9pVWUG5QsYQcVneMRaX-0-0d78c49f8b400c28b495997df06ae7f1)
得到的结果是“ABCdef”。
案例25 用“0”填充字符串
导语
zfill方法的作用是用ASCII字符“0”(即阿拉伯数字0)来填充原字符串的左侧,填充后新字符串案例的总长度取决于为width参数所分配的值。方法名称中的“z”即单词zero。
操作流程
步骤1:用字符“0”填充数字字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80260.jpg?sign=1738861288-IUNTWQwDBes6tFZNDJ82rESFOafM5pMq-0-7bfff872f81f8fb710435879a3a6c4d7)
步骤2:用字符“0”填充带负号(-)的数字字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80261.jpg?sign=1738861288-mIVPX8l4lOBPhZUF0GgdcuLWnA0en7HA-0-4f0b40b9d31d1379819a09063ef1f000)
步骤3:其实,zfill方法可以用“0”填充任意字符串,例如含有字母的字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80262.jpg?sign=1738861288-2KxQbjC8vQlm1DhEJB5DiQDfOUxB2vjT-0-451bf3ccff2e343ffc7a3b7ab0312a2b)
步骤4:本案例代码执行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80263.jpg?sign=1738861288-ZGFUwAsUwaqOESx3AaP1KF6T4oL7OYHV-0-aaa1dbca0fb37eaaeac5689cb95a4a57)
案例26 对齐方式
导语
str类有三个案例方法,可用于对齐字符串,它们分别是:
· ljust方法,其中字母“l”是Left的意思,功能是使字符串左对齐。
· rjust方法,字母“r”是Right的意思,即右对齐。
· center方法,居中对齐。
以上三个方法都接收两个参数。为了能够计算字符串对齐后的位置,width参数是必需的,它提供经过处理后字符串的总长度。如果width参数小于或者等于原字符串的长度,那么这些方法会将原字符串返回(无须处理)。另一个参数fillchar是可选的,用来指定填充字符——字符串对齐后,剩余的空间由fillchar参数提供的字符填满,使总长度等于width参数的值。如果省略fillchar参数,默认使用空格填充。
尽管在格式化控制符中可以使用“<”“>”“^”等标志来设定字符串的对齐方式,不过,如果遇到要格式化的字符串本身包含这些标志符号时,使用格式化控制符就很难处理(无法对“<”“>”等字符进行转义),这种情形下也可以考虑改用ljust、rjust或center方法。
操作流程
步骤1:以下代码将字符串左对齐,总长度为25,并用“<”符号填充。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80270.jpg?sign=1738861288-VdgIT7imEPN6QhKc2I6CUwETaCLgS0HN-0-22c2ab32ac38d65131a04baff5257d58)
步骤2:右对齐,总长度为25,用“>”符号填充。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80271.jpg?sign=1738861288-MUzLHK9j6Z3aPRKmiX2BbnmqLMw8rI9i-0-6baf7b65c9b2682ae2f21bb68ae33df3)
步骤3:居中对齐,用“#”号填充。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80272.jpg?sign=1738861288-jKHPwK5iaqlBA4wiRhkynZ0CwRYhleWK-0-7b6a7240bc93120db8dec6c5d8be1fa3)
步骤4:以上代码的运行结果如下。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80273.jpg?sign=1738861288-xFfZj9nTGwWicpAvMtwPxWxk3b4pIo9J-0-f70835bf0f41612bd41c4a94e0f08700)
案例27 查找子字符串
导语
在字符串中查找子串位置的案例方法主要是find,它的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80274.jpg?sign=1738861288-EAzNnCQA0wAvaXNFNL8DWIK0RKoyQb2K-0-478e27b17f4db62432eb5ac107e91138)
sub参数指定要在原字符串中查找的子字符串。start与end参数限定在原字符串中的查找范围。这两个参数是可选的,如果省略,默认会在整个字符串中查找子串。如果原字符串中找不到sub参数提供的子串,find方法返回-1;如果找到,返回子串在字符串中的位置索引(索引从0开始计算)。
另外,还有一个rfind方法,其用途与find方法相同,不同的是:find方法是从左向右进行查找的,而rfind方法是从右向左查找的,两者只是查找方向不同。
操作流程
步骤1:声明一个变量,并用字符串表达式赋值,稍后会在该字符串中分别查找两个“月”字的位置。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80275.jpg?sign=1738861288-4CqxSC48EZrAZBc88mfZFGSDiIp2EA1R-0-32f9a912217e345edce76ff8059ad889)
步骤2:依次调用find和rfind方法,从两个方向(从左到右,从右到左)查找字符串中的“月”。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80276.jpg?sign=1738861288-f0TheW7ezrnAFGRsSmR1f61a45pIyfcD-0-68c557ca0780400fd1619fdd172544df)
步骤3:向屏幕打印查找结果。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80278.jpg?sign=1738861288-Vv2G3yRDurfHYAUjxstJEZDM0wCcXNHi-0-01b5d5de590971c66276b6f2581c6f46)
步骤4:案例运行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80279.jpg?sign=1738861288-rKQg2iH4NlMSGocV71eFmLsZHypqMsac-0-614394035beebcfde35e9814be34c3ec)
案例28 startswith与endswith方法
导语
这两个方法的原型签名是相同的。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80280.jpg?sign=1738861288-kOJc11xAD4tK1XKwt1RGrKPVBPuZa31H-0-31fa98f0ae222ddc93959b1c00f3fb93)
prefix指定要查找的子字符串,startswith判断原字符串是否以prefix所指定的子字符串开头,而endswith方法则相反,判断原字符串是否以prefix所指定的子字符串结尾。如果判断成立就返回True,否则返回False。start和end是可选参数,用于限制查找范围,如果省略,即在整个字符串中查找。
操作流程
步骤1:声明并初始化一个变量,然后判断其是否以“ca”开头。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80281.jpg?sign=1738861288-tsMSUyQ1F5EzX5gRPRrDsHL0t4rkmySW-0-7dda1116252b122939fb2be1d22b2276)
步骤2:再声明一个变量,判断一下它是否以“de”结尾。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80282.jpg?sign=1738861288-YaVX535Pd1gIG79xSvjGKaIJsiTCoCQg-0-fd5393c06a335446c3aefa6d0e8b2768)
步骤3:运行本案例,得到的结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80283.jpg?sign=1738861288-IQK7M0GbXEySGEa2JXz4ceYPgXWswslN-0-cdd8eeb439cddee461bf9af1ce49f930)
案例29 统计子字符串出现的次数
导语
count方法的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80285.jpg?sign=1738861288-vXX0oKR9x0sIQEitOdKhMYQNi3xQLG1x-0-0238bb0da52e784419487510ea24e65f)
count方法的功能是统计子字符串sub在父字符串中出现的次数。start与end参数是可选的,表示统计的范围。count方法返回一个整数值,即子字符串sub出现的次数,如果父字符串中没有找到匹配的子串,count方法将返回0。
操作流程
步骤1:统计以下字符串中字母“a”出现的次数。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80286.jpg?sign=1738861288-hfvHxPqqj8zkII6wG4zLzGfBz3G0u5U9-0-6d387a5a5960e368341562d23a8d3668)
步骤2:统计汉字“一”在字符串中出现的次数。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80287.jpg?sign=1738861288-5Tar4M2zkoNww2B0pwX9HjBMAd3ZYWuY-0-deee9e9e0066872b6b0ee42d5183043b)
步骤3:以上代码运行后,输出的内容如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80288.jpg?sign=1738861288-t2PiQrQPp9LySVjRTxvlUdMDoyI4X11P-0-ed1b6387841d86ff71fc00234b58f2a1)
案例30 文本的标题样式
导语
capitalize方法和title方法都能将字符串切换为“标题”样式。capitalize方法仅仅把字符串中第一个单词的首字母改为大写,其余单词皆为小写字母;而title方法则会把字符串中每个单词的首字母都改为大写。
操作流程
步骤1:以下为待处理字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80289.jpg?sign=1738861288-mxRgp6pGzzoKGUuknNThJiux5tGiTtzE-0-df64ae4540aed15946c364a17143f30a)
步骤2:调用capitalize方法转换标题样式,并输出到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80290.jpg?sign=1738861288-puna7hKAK5aouACyA6m6uFWt2D7KjUcQ-0-653d5d11d60a37dbc502d1a0398124d1)
步骤3:调用title方法将字符串案例转换为标题样式,并打印。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80292.jpg?sign=1738861288-MluR4MY1vjHcZAzOtsyxt3En0PfGokdA-0-616ec34c69b797305694f81a34ee4b73)
通过访问特殊成员__name__能获得方法案例的名称。
步骤4:运行以上代码,输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80293.jpg?sign=1738861288-8d4hnTtj9W12VuifEEK2rrUt0FZ0ECmX-0-86d9f1abc1227ede7155d44b281fb464)
注意:capitalize和title方法对中文字符无效。
案例31 串联字符串
导语
join方法能够使用特定的分隔符,将一组字符串序列串联后以新的字符串案例返回。Python语言中join方法的使用与其他编程语言有些不同,str类的join方法是在分隔字符的案例上调用的。例如,要使用字符“&”将“ab”和“cd”两个字符串对象串联起来,join方法应该这样调用:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80295.jpg?sign=1738861288-fQzRmz44iUMWuWiKa05jJ4ZCQgV9y5Aa-0-a582adb87002b4695b876b195757e4c0)
join方法接收iterable类型的参数(例如元组、列表等),上面代码中给参数传递了一个字符串列表对象,列表中包含两个字符串元素。串联后返回结果“ab&cd”。
操作流程
步骤1:声明变量,并用一个元组案例赋值。元组中包含四个字符串元素。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80296.jpg?sign=1738861288-atGkCKU1uF0PLm5ewza8hc5UUcDTtigD-0-e032da697c0203843c4bef5219f698ce)
步骤2:用“|”字符把上面元组中的字符串进行串联,并打印。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80297.jpg?sign=1738861288-U5iUA7232EJbzl5CXGFsVleYIlBw23CZ-0-04ba361bb3fc371e62eaa10f054a16da)
步骤3:再声明一个变量,使用列表案例赋值。列表中包含三个字符串元素。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80298.jpg?sign=1738861288-O1PJa8gofuFOrWcXNWEni5SLN1qHziFh-0-a1f3833307e47847704655e00291ad38)
步骤4:使用字符“∗”对列表中的字符串元素进行串联。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80299.jpg?sign=1738861288-PGBfvMKOuHuL3fvy3Zyfp9w7E4cFFlOQ-0-8d9f0f8ebb5088331903de4d485629c1)
步骤5:运行本案例,得到的输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80301.jpg?sign=1738861288-wf8C0I0kh4rDbs66me5w6vu4BuLr9nNQ-0-f3780ce2a1d2ec497e72c4aeba2713ad)
案例32 拆分字符串
导语
split方法和rsplit方法都有拆解字符串的功能。split方法是常规处理,即字符串是从左到右进行拆解的;而rsplit方法则相反,是从右向左拆解字符串的。这两个方法的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80302.jpg?sign=1738861288-y2ocYhYX8ICRdRBEeEHNEtkKGciiIe3C-0-1d888f18e2003c6f5a68fd772d50612e)
sep参数指定字符串的“拆分点”,随后将以sep参数所指定的字符为依据,将字符串进行分割,最终以序列的形式返回拆分后的字符串,并且去除掉sep参数所指定的字符。maxsplit参数控制拆解的次数,默认为-1,表示无限制。例如,要将字符串“xy+z+efg+dk”以“+”字符为分隔符进行拆分,将得到一个包含四个字符串元素的序列,它们分别是:“xy”“z”“efg”和“dk”。如果maxsplit参数设置为2,那么,拆分方法只对前两个“+”字符出现的地方进行拆分,并得到一个包含三个元素的序列,分别是:“xy”“z”和“efg+dk”。
操作流程
步骤1:初始化一个待处理的字符串变量。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80303.jpg?sign=1738861288-LWlFrzCcdrb2rlPENgVxqJzhppZqhdeV-0-dfdb067a530c2aa7e7eff26b59feba2b)
步骤2:以“#”符号为分隔符对原字符串进行拆分。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80304.jpg?sign=1738861288-Nqqpih6E6RDXHqHOLiYzNLeAYK6fIqCY-0-a2dea8e0c1df13d4e6a76faf1733bf9f)
步骤3:拆分字符串,但只拆分一次,即maxsplit参数为1。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80305.jpg?sign=1738861288-sjO2SRBpVPc1l0OM46Aww6241fF1PWJX-0-e0a7cffd0eeea327fd9d33ae7b3efdc9)
步骤4:从右向左拆分字符串(调用rsplit方法),但限制只拆分两次,即maxsplit参数为2。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80306.jpg?sign=1738861288-yT5N1UloKOKpT8wDMCR1dEl3nsGYKDW2-0-1986fe53df7519fa16e006760670eb95)
步骤5:运行以上代码,输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80307.jpg?sign=1738861288-IuW7dVjVtHv3heJzDUxCF9xAcbJvJRwh-0-4c2cbb3525ac9e1feb79dc21951ea95d)
案例33 替换字符串
导语
replace方法可以在原字符串中查找目标子串,然后将其替换为新的内容。replace方法原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80310.jpg?sign=1738861288-8Je4alfE4ncS57AvXnGWdmKmp30VqpK9-0-f3b0071f4dce3cfc32793a2d901f340a)
old参数指定要被替换的字符,new参数表示用于替换的新字符,count参数指定被替换的次数,默认值为-1,表示全部替换。假设要将某个字符串案例中的“at”替换为“on”,count参数指定为3。若原字符串中出现6处“at”子串,那么最后只有前面3个才会被替换为“on”,其余皆被忽略。
replace方法的参数列表以“/”结尾,表示调用replace方法时只能顺序传递参数,不能使用关键字传递参数。因此,以下调用将发生错误。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80311.jpg?sign=1738861288-gKUh32s45CMmdXlIm1cnhBKBO8Spkedc-0-7cd360b5b96b0366d392841b8cfb0237)
正确的调用方法如下
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80312.jpg?sign=1738861288-N1V2LjyPfU3gvqdzIeAa0GVynR8zhN4j-0-93c4d8ba562ff4b730f4fd8bff1f1264)
操作流程
步骤1:将字符串中的“水长”替换为“路远”。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80313.jpg?sign=1738861288-wFWsA2sbvYm4UpQR7o2tT8yjluBpy37W-0-cfa7a80a2eb2088e3ca8d171b435c634)
步骤2:将字符串中的“abc”替换为“xyz”,而且只替换前两处“abc”(count参数为2)。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80314.jpg?sign=1738861288-cyTmb2VYH9MnYyNQiFi5H17oHf5z5kI4-0-c64a86ce0d277976dd869ab05d02e146)
步骤3:本案例代码执行后输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80315.jpg?sign=1738861288-yOD7lsOPSQOd7BVJHqtyQ1e7LWRANebP-0-481141fa7f51c894ba39834214b91460)
注意:“abc_abc_abc”中“abc”只被替换两次,因此后面的“abc”被保留。
案例34 去掉字符串首尾的空格
导语
直接调用strip方法而不传递任何参数,就能够把字符串首部和尾部的空格去掉。strip方法也能去掉字符串首尾的制表符(Tab)和换行符。
操作流程
步骤1:去除字符串首尾的空格符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80317.jpg?sign=1738861288-mI145BQATlev0bEZBzh5QBZNUmRbnmwt-0-b1eacf10a77d9120425ee4ef960baf67)
在向屏幕打印结果时,在字符串案例周围加上了双引号是为了便于查看输出结果(空格、制表符、换行符在屏幕上是不可见的)。其中,\"转义字符并不是必需的,可以直接使用双引号,因为字符串的最外层使用了单引号包裹,里层允许直接使用双引号。
步骤2:去除字符串中的制表符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80318.jpg?sign=1738861288-4do2Dv8nVkOoRMaUuavLxd28jSMObPfY-0-6e15b58f49f75363139118eb98e41b40)
步骤3:还可以去除字符串中的换行符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80319.jpg?sign=1738861288-VjC65Q6KAkp2e6rU4qmGPW35kBrQYcaC-0-d611651a8c833500b50be37ec9b6523c)
步骤4:上述代码的执行结果为:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80320.jpg?sign=1738861288-4bdG9JcLRqCszKIzfeg5bGTFXHD62Oe1-0-e57a14887307a240d31090df8a469299)
案例35 lstrip与rstrip方法
导语
与strip方法类似的,str类还公开了两个案例方法——lstrip方法和rstrip方法。lstrip方法只去除字符串首部的空格;相反地,rstrip方法用于去除字符串尾部的空格。
操作流程
步骤1:调用lstrip方法去除字符串首部的制表符。此方法只处理字符串首部位置,如果字符串尾部存在制表符,是不会被去除的。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80322.jpg?sign=1738861288-ti08IwwSbG5ge41FxsHDMyYYHEI10qeQ-0-77571562cb030a0baf8f59534422e60c)
返回的新字符串应为“Hello Tom\t”,保留尾部的“\t”。
步骤2:调用rstrip方法,去除字符串尾部的空格。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80323.jpg?sign=1738861288-29uSZmk69DNjowhASQ5v2m2e93iaPFhG-0-9cfb7da1b0924616dbd19bb47bcb3afd)
rstrip方法去除字符串尾部字符,不会修改首部,不过,因为上面定义的字符串首部没有出现空格,所以此处调用rstrip方法与调用strip方法的效果相同。
步骤3:去除字符串首尾的空格。strip方法对字符串的首部和尾部都会进行处理。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80324.jpg?sign=1738861288-EwC8qE3GYRPPTsUdtBrMw6hUcVjiLliy-0-1aa77f81d1c10b0eeea7c08e1b5aa0e9)
步骤4:将上述各段代码的处理结果打印到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80325.jpg?sign=1738861288-OZtO3Q6WkpDYwYzFHDu9KPGUFCtoQpIz-0-99bf79465c25792d8cc347ac4c07d5b8)
步骤5:运行本案例后,屏幕输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80326.jpg?sign=1738861288-u4CJBXv6zAs48oBsXCShilpWNWb9RYkW-0-82f828c80a4838b3b8a6eb3868c5680a)
案例36 去除字符串首尾的特定字符
导语
strip、lstrip和rstrip方法都有一个可选chars参数,允许指定一组字符。调用方法后,会在原字符串中查找chars参数中提供的字符,如果找到,并且这些字符位于原字符串的首部或尾部,那么这些字符就会被去除。例如
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80328.jpg?sign=1738861288-QnASNULTUaWMRULQdntfBDfhDC4YSEDj-0-f7af235cd0de07a63c6ecd9c5411a909)
strip方法的参数中提供了三个字符:c、h、b。字符串“batch”的首字符是“b”,此字符存在chars参数中,所以字符“b”被去掉,原字符串变为“atch”;接着,原字符串中尾部字符是“h”,此字符也存在于chars参数中,因此被去除,字符串变为“atc”;随后,字符串的尾部字符变成“c”,也能在chars参数中找到,所以字符“c”也被去除。最终,得到的字符串为“at”。
操作流程
步骤1:去除字符串首部和尾部的“=”。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80329.jpg?sign=1738861288-GSqE3vNIRVFV6NvTkdjUXrmPDwUK2xD9-0-3864963c7b4639f31207c53c07bafc8b)
尽管字符串首尾有多个“=”字符,但调用strip方法时只需要指定一个“=”字符即可,strip方法会对原字符串进行循环“剥离”,直到其首部和尾部找不到“=”字符为止。
步骤2:去除字符串首部的“#”和“$”字符。此处只需调用lstrip方法即可。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80330.jpg?sign=1738861288-R6XsbmYwb2Lw8PvgzOwvbeqJKibsa7S6-0-c68f2f3d527ef9940ffb7c793f754612)
步骤3:去除域名中的“www.”前缀和“.com”后缀。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80331.jpg?sign=1738861288-lpUIwWiVd7tHNzWeTO75swN8EGWc2x5m-0-bacb6173efb1abddb22534dae6dd9e1a)
此处不能调用strip('wcom.')来处理,因为如果前缀的“www.”被去除后,“cctv”首部有两个“c”字符,这样会导致这两个“c”字符也被意外地去除了。所以,这里可以分两步处理:第一步先用lstrip方法把域名前面的“www.”去掉;第二步调用rstrip方法将域名尾部的“.com”去除。最终保留字符串“cctv”。
步骤4:案例代码执行后输出的结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80332.jpg?sign=1738861288-HRmdzEhZZm2JEaPg3jpdmQI9HM06THEK-0-e856710a0c2c9900d7a6f223b1f2d197)