![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=1738958550-r7nqNqRDHHAOv75Qce7a1s2gsNCSgzD9-0-4939a89792b892581113ef76a1517f44)
第一次调用upper方法时,字符串案例中包含的全是大写字母,因此会把所有字符都转换为大写字母;第二次调用时,字符串案例中只有“klmn”是小写字母,所以在返回时只有这几个字符被转换为大写字母。
输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80251.jpg?sign=1738958550-6jXKjO6heYTlFi0GVlvEMSh6TOqNOIYz-0-150e0c598facab177fac744af68de5e4)
步骤2:以下代码将大写字母转换为小写字母。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80252.jpg?sign=1738958550-kcHM5gOrw20tZqHmPYGgS3Exv3hWLhe9-0-86e58567b88033177db0ad83caa73cc3)
与upper方法同理,字符串案例中大写字母会被转换为小写字母,而小写字母无须处理。输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80253.jpg?sign=1738958550-HfsdzVRvtRs1Mj5JpqhIRQMQmJ7JCVTU-0-4eb9559208b5935acf1ac77c340a9b11)
步骤3:但是,对于中文与数字字符,lower和upper方法皆不起作用。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80254.jpg?sign=1738958550-ao2EgJWEYqiYL9nlPSGTnihOu3HAJpzT-0-60fbb4792d00c912ba77738cc26d1d44)
方法调用后,按原字符输出。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80255.jpg?sign=1738958550-DRjPJayeFDVGAI3XdXujijnovoiXDmFF-0-079b5f767155b8c7a328584ad25915f1)
注意:swapcase方法也可以转换字母的大小写,此方法会将原字符串中的大写字母转换成小写字母,将小写字母转换成大写字母。例如:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P49_80256.jpg?sign=1738958550-93dzbjbnJ0KCVb1H6AVrSjhHyW4Lrq6C-0-bdf5b2bb25fd3f9a82ac99a9c5dd5e0b)
得到的结果是“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=1738958550-WifkiPYsqei80HlUJlYDgd4ANf4PLVtk-0-5c9fdcdf949db23820a6738e18b3e046)
步骤2:用字符“0”填充带负号(-)的数字字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80261.jpg?sign=1738958550-mBZNNTeWp7jaJpxn7QE5MXYNXOHMxERp-0-5f3d8df59bb8d9b5331fa6876e110379)
步骤3:其实,zfill方法可以用“0”填充任意字符串,例如含有字母的字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80262.jpg?sign=1738958550-TUB3cXdijhjyDMHOnIzVeq6wK2i1VbRq-0-8d54cc6cf007dd90947860114f2f3115)
步骤4:本案例代码执行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P50_80263.jpg?sign=1738958550-MCaG7Ef0mzQNcTavenBoRNRXIRidLAD4-0-f77ca16b367156356723584c7b8ca86e)
案例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=1738958550-NmxWj9In3DU4n2t6SsHNRrMlEPRPtWAk-0-41f752d48ed70029635fbe04c08d0217)
步骤2:右对齐,总长度为25,用“>”符号填充。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80271.jpg?sign=1738958550-WHU32AjG2BQcH9nRt6jOSzJQYA8lobHG-0-c9f4e0ef608fe65e49ab1b711e9fcaf5)
步骤3:居中对齐,用“#”号填充。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80272.jpg?sign=1738958550-dvA8TFzUWyaxxR29cPbWprdzvfKE0eZz-0-70ed54013e930f67f454e8991a50c0d3)
步骤4:以上代码的运行结果如下。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80273.jpg?sign=1738958550-8soxUMDWru8jSHNNNVvjCbwo5ZFm9AkA-0-5de72977dfbafd82e0f3a04739c40b18)
案例27 查找子字符串
导语
在字符串中查找子串位置的案例方法主要是find,它的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80274.jpg?sign=1738958550-4w7LDPwDCr1oVoh7o4jeaZ6CI9xumEKh-0-1f4ff2bef13986d9436de581b119a681)
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=1738958550-6HC2zXycuKeKnZ0ZHoFMusM9GYWVAEZB-0-d783c41329c7ecfc935efdc6f1dc6222)
步骤2:依次调用find和rfind方法,从两个方向(从左到右,从右到左)查找字符串中的“月”。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P51_80276.jpg?sign=1738958550-HPFiDcZaHx7h5O1QbTXDitmxFrWt9Vxr-0-915093fe1451fe4960819f5d3c3f549a)
步骤3:向屏幕打印查找结果。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80278.jpg?sign=1738958550-s66cMDoaItgORfcuLG580RuKtfIdUPRb-0-d90a36ed14a6a0aefe7c8d9219a885f3)
步骤4:案例运行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80279.jpg?sign=1738958550-QKi5o48cVxyV8wHCB79bK6Ay2pGVpOlR-0-552436dc4dd5dff7fc1c54c723813d7d)
案例28 startswith与endswith方法
导语
这两个方法的原型签名是相同的。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80280.jpg?sign=1738958550-mmRORfLy0pp1jGhePnLOSXcJ8M7eCb28-0-72b431fb5c529636ae0c3573b248fd5c)
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=1738958550-fmwIv5bSTmYHtEHa0a3PMpoN4Ro9WYIk-0-d459ad4bb3a60dac7e4280a320ca401b)
步骤2:再声明一个变量,判断一下它是否以“de”结尾。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80282.jpg?sign=1738958550-ag68kDKTZHfLsnZYLI7Z0Xli8Uwwtv4w-0-28b6be3a7f8440b1c36bf0e90e73227b)
步骤3:运行本案例,得到的结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P52_80283.jpg?sign=1738958550-JwJ1aN2zOLJtB6PeoFGuOhyn1r0NkGie-0-4bdb52f08046f6aa0fd2ca6a083770c9)
案例29 统计子字符串出现的次数
导语
count方法的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80285.jpg?sign=1738958550-lpepTWkjCHH1gLSyUpPpZxde3DiYZuos-0-3480c22db8c72d13ea9c1814b2526b7e)
count方法的功能是统计子字符串sub在父字符串中出现的次数。start与end参数是可选的,表示统计的范围。count方法返回一个整数值,即子字符串sub出现的次数,如果父字符串中没有找到匹配的子串,count方法将返回0。
操作流程
步骤1:统计以下字符串中字母“a”出现的次数。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80286.jpg?sign=1738958550-zIka4qEoRtyr7vPYfkCMyKbh0shlF1bP-0-221289d98bb9d7255d45d7132357f628)
步骤2:统计汉字“一”在字符串中出现的次数。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80287.jpg?sign=1738958550-lZHCreJyxXo8Xd773YMm97X3dhx9xFk9-0-ceaf47d45c548574827aeb6b21334b9c)
步骤3:以上代码运行后,输出的内容如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80288.jpg?sign=1738958550-YyDhPdPbQdqLfMvJRRn24as8gK8O2dpK-0-4523dbc79d43eab0782ce505337b5e0d)
案例30 文本的标题样式
导语
capitalize方法和title方法都能将字符串切换为“标题”样式。capitalize方法仅仅把字符串中第一个单词的首字母改为大写,其余单词皆为小写字母;而title方法则会把字符串中每个单词的首字母都改为大写。
操作流程
步骤1:以下为待处理字符串。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80289.jpg?sign=1738958550-UcRTew8NTxMhSvB5JSdMn4MAuzeuSyaF-0-b8366a1f1f0cfcf50a16a618b932fb9b)
步骤2:调用capitalize方法转换标题样式,并输出到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P53_80290.jpg?sign=1738958550-1WTPCv7KCq7R2HHgAkUz8oOHzIzJMBXu-0-3646e4580bd473fbd607f8c115834c9f)
步骤3:调用title方法将字符串案例转换为标题样式,并打印。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80292.jpg?sign=1738958550-A2MqKTDobdBE8DolK1ZlMJuIiywWGnsz-0-c50a3572a65c27814cfc8feee585ef55)
通过访问特殊成员__name__能获得方法案例的名称。
步骤4:运行以上代码,输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80293.jpg?sign=1738958550-4cJI3Uuj4zXut08bSnNBkWSPUJl17ava-0-b3328805dc24c3cb4caa9a38b356994d)
注意: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=1738958550-uqM9xBOUDDF07RsQEQdeWb64jmRU4z90-0-affe49d496f8342e9a1017983744ce80)
join方法接收iterable类型的参数(例如元组、列表等),上面代码中给参数传递了一个字符串列表对象,列表中包含两个字符串元素。串联后返回结果“ab&cd”。
操作流程
步骤1:声明变量,并用一个元组案例赋值。元组中包含四个字符串元素。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80296.jpg?sign=1738958550-BpT4ikbFocO2Tgyi8FM4NrffjPno7Jhw-0-6f52a993c395035d1d94253421920d2a)
步骤2:用“|”字符把上面元组中的字符串进行串联,并打印。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80297.jpg?sign=1738958550-91ctjEx1YuDDYQmbEtaUksJT7Y8FAcFu-0-605bec691d7989a12f5343f894f26537)
步骤3:再声明一个变量,使用列表案例赋值。列表中包含三个字符串元素。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80298.jpg?sign=1738958550-IeLThHByoOaz8clEBVTKq3tE9QodsHtl-0-868d12bf246383a3a47d78fa5e28fea7)
步骤4:使用字符“∗”对列表中的字符串元素进行串联。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P54_80299.jpg?sign=1738958550-2gGmhxhMBNfVCUUMNAJ3K5VCVQzTzCT8-0-4d6c967fbace7944e53f9be38f0e4840)
步骤5:运行本案例,得到的输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80301.jpg?sign=1738958550-w1vNyJneaC6JNcOEogo77PKeyny1I7DD-0-2d0f8b8addc8b4a530927ed53b10dad4)
案例32 拆分字符串
导语
split方法和rsplit方法都有拆解字符串的功能。split方法是常规处理,即字符串是从左到右进行拆解的;而rsplit方法则相反,是从右向左拆解字符串的。这两个方法的原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80302.jpg?sign=1738958550-UJzwSR3Ljjtw7JDH2IcPqlXjxR5Ya6Xb-0-c1b257ec57ba3be7167fb0e0280ce575)
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=1738958550-31EfiZWdZ9ptmPj5H7viVXiJnFdfXcNo-0-b32553279f3701ab63b1376e4125c5e8)
步骤2:以“#”符号为分隔符对原字符串进行拆分。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80304.jpg?sign=1738958550-xIh7Y3GnjYBxZIeCCSbzNuF5BgIqGRKa-0-889ee995e7abc72b2ff65ede2e77f351)
步骤3:拆分字符串,但只拆分一次,即maxsplit参数为1。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80305.jpg?sign=1738958550-daOVMWgn0eMMhgPej3k8qjma6NXH7qQU-0-1ec9f5b655624e964c087f6a622f4d83)
步骤4:从右向左拆分字符串(调用rsplit方法),但限制只拆分两次,即maxsplit参数为2。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80306.jpg?sign=1738958550-8RI8ZFL6a1VmtNX1mAlJoX89KRX3MZsv-0-79627c8c658eb7fc422845a1ae330a63)
步骤5:运行以上代码,输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P55_80307.jpg?sign=1738958550-6AiB2NZi890SDSpWGOCL0mxdq6gO2WYp-0-745aa93493b5a06062df83bc7886eb50)
案例33 替换字符串
导语
replace方法可以在原字符串中查找目标子串,然后将其替换为新的内容。replace方法原型如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80310.jpg?sign=1738958550-aRi5Rk11QKJgnUeV6Q9iP0KUbcUcnpss-0-98180133220db1637c534f47c1aeedb4)
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=1738958550-F1K1RS2tPq6GcpTnr9AA6OH9qxkBeP8x-0-6757255032b2cac80b88434a1cccd5e8)
正确的调用方法如下
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80312.jpg?sign=1738958550-XdjOLyhThf98t484oNzq9jV6MQkvQUPh-0-a8ce21747e41c73a396a60f3a42d120c)
操作流程
步骤1:将字符串中的“水长”替换为“路远”。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80313.jpg?sign=1738958550-tx097pwaenjj91JcuxSLeWTNCUqGL5eV-0-904d838e232fbe47091c477ff2f176f9)
步骤2:将字符串中的“abc”替换为“xyz”,而且只替换前两处“abc”(count参数为2)。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80314.jpg?sign=1738958550-NdEeoz1IBZ91eFz2LVJKFirAIvo6hPxZ-0-f5cbece6e10db498eaa8a4a144ec5d5d)
步骤3:本案例代码执行后输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P56_80315.jpg?sign=1738958550-qOCJjJaWzJxYp7QfntRYrQedBaaQREmk-0-c96c78e47f92a6a1ee0da46dbb603e92)
注意:“abc_abc_abc”中“abc”只被替换两次,因此后面的“abc”被保留。
案例34 去掉字符串首尾的空格
导语
直接调用strip方法而不传递任何参数,就能够把字符串首部和尾部的空格去掉。strip方法也能去掉字符串首尾的制表符(Tab)和换行符。
操作流程
步骤1:去除字符串首尾的空格符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80317.jpg?sign=1738958550-o0h9b3VjdNeDLlc4N7eVd84W6CcdeA0J-0-7e3fbce499d76c771894ea667da57127)
在向屏幕打印结果时,在字符串案例周围加上了双引号是为了便于查看输出结果(空格、制表符、换行符在屏幕上是不可见的)。其中,\"转义字符并不是必需的,可以直接使用双引号,因为字符串的最外层使用了单引号包裹,里层允许直接使用双引号。
步骤2:去除字符串中的制表符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80318.jpg?sign=1738958550-MnoibPQFqvbrsC1loUHFIcqEBrolDtJZ-0-aef6d2432e2a2139f0c1e8c41283bb71)
步骤3:还可以去除字符串中的换行符。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80319.jpg?sign=1738958550-kfgJcd5AR7Si3qCMN3BJcg1WPcqDIaes-0-f502a174bbc68aab706df2d88cdc9096)
步骤4:上述代码的执行结果为:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P57_80320.jpg?sign=1738958550-QUiBjr8eHhOkJNFhIHdzKubIIirrUigx-0-9d473ff7dbf5845a57974315a4d26a7f)
案例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=1738958550-gXcyiaAcxT3uACsmSHX2DZb7JMBervj4-0-660c96ae8dd45eee020ee76ba4833548)
返回的新字符串应为“Hello Tom\t”,保留尾部的“\t”。
步骤2:调用rstrip方法,去除字符串尾部的空格。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80323.jpg?sign=1738958550-NAAxWN1fawS5oZV9xNGonpn4XNvD0DtX-0-23c22fd72d3e3d03e29e9efd094e8a28)
rstrip方法去除字符串尾部字符,不会修改首部,不过,因为上面定义的字符串首部没有出现空格,所以此处调用rstrip方法与调用strip方法的效果相同。
步骤3:去除字符串首尾的空格。strip方法对字符串的首部和尾部都会进行处理。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80324.jpg?sign=1738958550-NOaN72MIeKSNR4rRfSQfQTD5hQAAdYuH-0-8f1042513f081ae72c880f8caa954922)
步骤4:将上述各段代码的处理结果打印到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80325.jpg?sign=1738958550-Z13rH4OwvXz6QbDcz4ReA3VFTotGGvNE-0-baa9e3ebd07de4cc8cb707d6e4688311)
步骤5:运行本案例后,屏幕输出结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P58_80326.jpg?sign=1738958550-DP4R4FW2AurjvQEHcW3lTTall5G1lehp-0-598985701d2a28a8268a06af90e29f93)
案例36 去除字符串首尾的特定字符
导语
strip、lstrip和rstrip方法都有一个可选chars参数,允许指定一组字符。调用方法后,会在原字符串中查找chars参数中提供的字符,如果找到,并且这些字符位于原字符串的首部或尾部,那么这些字符就会被去除。例如
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80328.jpg?sign=1738958550-0MG21SLj42xsmEodyCj7J4rt2qimU2l0-0-83037a7db1706b426ddd46750ec61253)
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=1738958550-X8srpom9CewXS12Xe3AYt57dgblGzftu-0-551eeee30d28587a94fc28e94273a964)
尽管字符串首尾有多个“=”字符,但调用strip方法时只需要指定一个“=”字符即可,strip方法会对原字符串进行循环“剥离”,直到其首部和尾部找不到“=”字符为止。
步骤2:去除字符串首部的“#”和“$”字符。此处只需调用lstrip方法即可。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80330.jpg?sign=1738958550-IlCXBePckkBgfvx5fH6P3thHpOhYcMvy-0-a666e7f580bec749793410f95feef0d5)
步骤3:去除域名中的“www.”前缀和“.com”后缀。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P59_80331.jpg?sign=1738958550-kI7kUnLmpUURokdGKXm3xq1cvxzvXcgc-0-d9c5dbdb3a6281a0c1ee052a510e47c4)
此处不能调用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=1738958550-iRKerVHCTTIJSG8WEQ1MFT5PPfjU6P1G-0-09954b98b6efa6b7726aa07b0f48b49f)