13
—— 字符串操作——
(1)S.capitalize()
作用:将字符串的第一个字母变成大写,其他字母变小写,该方法返回一个首字母大写的字符串。
![](https://img.haomeiwen.com/i15050389/22c2d4f1261c8c1f.png)
![](https://img.haomeiwen.com/i15050389/4cfa6baaabb655a7.png)
(2)S.center()
作用:()里面的两个参数,第一个是宽度,第二个是填充字符。返回一个原字符串居中,并使用填充字符填充至长度 width 的新字符串。默认填充字符为空格。
![](https://img.haomeiwen.com/i15050389/f4cf5e5dce41b6c8.png)
![](https://img.haomeiwen.com/i15050389/65ab5495ae80ee3f.png)
(3)S.count()
作用:用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
参数:sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。默认为字符串的最后一个位置。
![](https://img.haomeiwen.com/i15050389/31273ba057ae4199.png)
![](https://img.haomeiwen.com/i15050389/2fdfbac2fcbdd4f3.png)
(4)S.encode()
作用:以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。S.encode()返回编码后的字符串。
参数:encoding -- 要使用的编码,如"UTF-8"。
errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能的值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
![](https://img.haomeiwen.com/i15050389/b6fe2484b4ddf7bd.png)
![](https://img.haomeiwen.com/i15050389/59d8a301207499bf.png)
(5)S.endswith()
作用:用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
参数:suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。
![](https://img.haomeiwen.com/i15050389/5becab96b995b51f.png)
![](https://img.haomeiwen.com/i15050389/9587b1eefcb6d6f8.png)
(6)S.expandtabs
作用:把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。返回字符串中的将 tab 符号('\t')转为空格后生成的新字符串。
参数:tabsize -- 指定转换字符串中的 tab 符号('\t')转为空格的字符数。
![](https://img.haomeiwen.com/i15050389/6d87fc4473d7a717.png)
![](https://img.haomeiwen.com/i15050389/4288ad03e5f70055.png)
(7)S.find()
作用:检测字符串中是否包含子字符串 sub,如果指定start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
参数:sub -- 指定检索的字符串。
start -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
![](https://img.haomeiwen.com/i15050389/5c83990a8a432487.png)
![](https://img.haomeiwen.com/i15050389/bd0c100361bd9b9c.png)
在这里补充一点,为什么返回的是第一个字符的索引,因为字符串也可以“切片”。如下图所示:
![](https://img.haomeiwen.com/i15050389/065481f518760adb.png)
(8)S.format()
作用:格式化输出
复习一下S.format()的用法:
![](https://img.haomeiwen.com/i15050389/44f425b65c9ae204.png)
![](https://img.haomeiwen.com/i15050389/be3c3f55a3e3a037.png)
(9)S.format_map()
作用:也是格式化输出,可以通过字典设置参数
![](https://img.haomeiwen.com/i15050389/5917bfaebaa76ffb.png)
![](https://img.haomeiwen.com/i15050389/a6d6576e64ce633b.png)
(10)S.index()
作用:检测字符串中是否包含子字符串 sub ,如果指定start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果sub不在 string中会报一个异常。
参数:sub -- 指定检索的字符串
start -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
![](https://img.haomeiwen.com/i15050389/92a8011ea5360ff0.png)
S.index()如果包含子字符串返回开始的索引值,否则抛出异常。
![](https://img.haomeiwen.com/i15050389/cec4461329be387a.png)
S.find()不会报错,只打印一个-1:
![](https://img.haomeiwen.com/i15050389/8ad2239c930baaeb.png)
(11)S.isalnum()
作用:检测字符串是否由字母和数字组成。如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/45e8f98641ea8262.png)
![](https://img.haomeiwen.com/i15050389/9ca95838aeed7b1f.png)
第一个name因为包含空格,所以返回了False。
(12)S.isalpha()
作用:检测字符串是否只由字母组成。如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/a30e679b05f04904.png)
![](https://img.haomeiwen.com/i15050389/dfd39afbfdb0cf34.png)
第一个name因为包含数字4和空格 ,所以返回了False。第二个name因为没有任何字符,所以返回了False。第三个name只包含字母,所以返回了True。
(13)S.decimal()
(14)S.isdigit()
(15)S.isnumeric()
这三者的区别:
![](https://img.haomeiwen.com/i15050389/be9f005c652cb7a3.png)
总结一下:
![](https://img.haomeiwen.com/i15050389/d8ef906770649e37.png)
(16)S.identifier()
作用:用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法。如果字符串是有效的 Python 标识符返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/b4b1136154fa5690.png)
![](https://img.haomeiwen.com/i15050389/b0ebd8190a1c23f9.png)
第一个name,标识符不能以数字开头,所以返回False;第二个name因为包含"#",所以返回了False;第三个是没有问题的;第四个中文也可以当标识符,所以返回了True。
(17)S.islower()
作用:检测字符串是否由小写字母组成。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/77d6bce30123a97e.png)
![](https://img.haomeiwen.com/i15050389/d4902e521f17ed33.png)
(18)S.isupper()
作用:检测字符串中所有的字母是否都为大写。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/0b73002186e218b8.png)
![](https://img.haomeiwen.com/i15050389/67e32232cf940ded.png)
(19)S.isprintable()
作用:判断字符串中所有字符是否都是可打印字符(in repr())或字符串为空。如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 False。
Unicode字符集中“Other” 、“Separator”类别的字符为不可打印的字符(但不包括ASCII码中的空格(0x20))。可用于判断转义字符。
ASCII码中第0~32号及第127号是控制字符;第33~126号是可打印字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母。
![](https://img.haomeiwen.com/i15050389/931a3b11ebe402ea.png)
![](https://img.haomeiwen.com/i15050389/0f0c3a42f2168bff.png)
(20)S.isapace()
作用:检测字符串是否只由空格组成。如果字符串中只包含空格,则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/3fc4acafdeb26bb0.png)
![](https://img.haomeiwen.com/i15050389/e4cec3c04eb77abc.png)
(21)S.istitle()
作用:检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False。
![](https://img.haomeiwen.com/i15050389/64572cf159f1d314.png)
![](https://img.haomeiwen.com/i15050389/be59ea4a7771f40a.png)
(22)S.join()
作用:用于将序列中的元素以指定的字符连接生成一个新的字符串。
![](https://img.haomeiwen.com/i15050389/9ed2614162d01cb0.png)
![](https://img.haomeiwen.com/i15050389/92cfe35267aded34.png)
可以将一个列表用指定字符连接成一个字符串。
(23)S.ljust()
作用:返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。(如果指定的长度小于原字符串的长度则返回原字符串。)
参数:width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
![](https://img.haomeiwen.com/i15050389/d9611ad93ecf71e4.png)
![](https://img.haomeiwen.com/i15050389/b5b6de0c8373f0e5.png)
(24)S.rjust()
作用:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
参数:width -- 指定填充指定字符后中字符串的总长度.
fillchar -- 填充的字符,默认为空格。
![](https://img.haomeiwen.com/i15050389/3696b865d2662d46.png)
![](https://img.haomeiwen.com/i15050389/bdd2d80abe73aaee.png)
(25)S.lower()
作用:转换字符串中所有大写字符为小写。返回将字符串中所有大写字符转换为小写后生成的字符串。
![](https://img.haomeiwen.com/i15050389/7d419e9c2dabfd15.png)
![](https://img.haomeiwen.com/i15050389/48f82f03da793bd2.png)
(26)S.upper()
作用:将字符串中的小写字母转为大写字母。返回小写字母转为大写字母的字符串。
![](https://img.haomeiwen.com/i15050389/a17cdb048f32367f.png)
![](https://img.haomeiwen.com/i15050389/c0d11a1acc590acf.png)
(27)S.lstrip()
作用:用于截掉字符串左边的空格、换行符或指定字符。返回截掉字符串左边的空格、换行符或指定字符后生成的新字符串。
参数:chars --指定截取的字符。
![](https://img.haomeiwen.com/i15050389/c80e0243dce21878.png)
移除空格:
![](https://img.haomeiwen.com/i15050389/90639fa8294ae931.png)
移除换行符:
![](https://img.haomeiwen.com/i15050389/9fc21aa47661fd8c.png)
移除指定字符:
![](https://img.haomeiwen.com/i15050389/aece7c94d305265d.png)
(28)S.rstrip()
作用: 删除 string 字符串末尾的指定字符(默认为空格、换行符)。返回删除 string 字符串末尾的指定字符后生成的新字符串。
参数:chars -- 指定删除的字符(默认为空格、换行符)
![](https://img.haomeiwen.com/i15050389/08cf5fa31aa03508.png)
移除空格:
![](https://img.haomeiwen.com/i15050389/0b1379911ce08943.png)
移除换行符:
![](https://img.haomeiwen.com/i15050389/b9d6b60ca30b6cdb.png)
移除指定字符:
![](https://img.haomeiwen.com/i15050389/e3b344cb3da9e846.png)
(29)S.strip()
作用:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
参数:chars -- 移除字符串头尾指定的字符序列。
![](https://img.haomeiwen.com/i15050389/0bbd5d7418a5ba5d.png)
移除空格:
![](https://img.haomeiwen.com/i15050389/a991896aee9074fa.png)
移除换行符:
![](https://img.haomeiwen.com/i15050389/5dc3cc9e1a8c4b4b.png)
移除指定字符:
![](https://img.haomeiwen.com/i15050389/29dbd16c1a8bc5f6.png)
(30)str.maketrans()
作用:用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。返回字符串转换后生成的新字符串。
两个字符串的长度必须相同,为一一对应的关系。
![](https://img.haomeiwen.com/i15050389/aa3a840f33ef637f.png)
此方法不太常用,可以创建随机密码:
![](https://img.haomeiwen.com/i15050389/2fd8abfe44bbd6b5.png)
这样“mango”就被加密为“#1$7o”。
(31)S.replace()
作用:把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数count,则替换不超过count次。
参数:old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
count -- 可选字符串, 替换不超过 count 次。
![](https://img.haomeiwen.com/i15050389/526416d41f097dbf.png)
![](https://img.haomeiwen.com/i15050389/782ab70ebd0902ac.png)
(32)S.refind()
作用:返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
参数:str -- 查找的字符串。
start -- 开始查找的位置,默认为0
end -- 结束查找位置,默认为字符串的长度。
![](https://img.haomeiwen.com/i15050389/f4e65fb28a93a77d.png)
![](https://img.haomeiwen.com/i15050389/565bbc19eb623ee3.png)
(33)S.split()
作用:通过指定分隔符对字符串进行切片,如果参数 maxsplit 有指定值,则分隔 maxsplit+1 个子字符串。
参数:sep -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
maxsplit -- 分割次数。默认为 -1, 即分隔所有。
![](https://img.haomeiwen.com/i15050389/c3109412f98612ab.png)
![](https://img.haomeiwen.com/i15050389/1f81cddece967f6d.png)
第一个例子演示了默认以空格分隔开,第二个例子演示了,这时的分割标志为“a”,如果参数为1,则分割为两个部分,以第一个“a”分割开来,若是参数为2,则分割为3个部分。第三个例子演示了这种方法常用于将式子中的数值提取出来。
(34)S.splitlines()
作用:按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
参数:keepends -- 在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
![](https://img.haomeiwen.com/i15050389/673785d8fcf0b89a.png)
![](https://img.haomeiwen.com/i15050389/f1ae60e29e8cf9c9.png)
(35)S.rsplit()
作用:通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等。类似于 split() 方法,只不过是从字符串最后面开始分割。返回分割后的字符串列表。
参数:sep -- 可选参数,指定的分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
maxsplit -- 可选参数,分割次数,默认为分隔符在字符串中出现的总次数。
![](https://img.haomeiwen.com/i15050389/56183e49a1c6f362.png)
![](https://img.haomeiwen.com/i15050389/3439a3323223e59c.png)
(36)S.startwith()
作用:用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 start 和 end 指定值,则在指定范围内检查。
参数:prefix -- 检测的字符串。
start -- 可选参数用于设置字符串检测的起始位置。
end -- 可选参数用于设置字符串检测的结束位置。
![](https://img.haomeiwen.com/i15050389/9fd7faa8b7d8b81a.png)
![](https://img.haomeiwen.com/i15050389/dba2857e99e3d501.png)
(37)S.swapcase()
作用:用于对字符串的大小写字母进行转换。返回大小写字母转换后生成的新字符串。
![](https://img.haomeiwen.com/i15050389/03bc95ffa20b58fc.png)
![](https://img.haomeiwen.com/i15050389/d89dd20deebd9878.png)
(38)S.title()
作用:返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
![](https://img.haomeiwen.com/i15050389/64642c7d70a7b495.png)
![](https://img.haomeiwen.com/i15050389/f45f7aebd84e0477.png)
(39)S.zfill()
作用:返回指定长度的字符串,原字符串右对齐,前面填充0。
参数:width -- 指定字符串的长度。原字符串右对齐,前面填充0。
![](https://img.haomeiwen.com/i15050389/27afe20049f29ca1.png)
![](https://img.haomeiwen.com/i15050389/4f5d2ed11568850c.png)
补充:
字符串可以查:
![](https://img.haomeiwen.com/i15050389/d228eeb19fe7de67.png)
但是字符串不可以像列表那样,进行更改:
![](https://img.haomeiwen.com/i15050389/c34d2b38595b5d3a.png)
错误类型显示:字符串不支持这样的操作。
原因是:字符串在进行修改之后,比如上面说的大写变小写或者小写变大写,使生成了一个新的字符串,并且对原字符串进行了覆盖,所以不能对其中单独的一部分进行修改。