点击上方蓝字关注我
python中字符串的操作函数较多,知识点也比较零碎,虽然不用每一个函授都记住,但是还是要熟练掌握一些函数的使用的哦,否则老板交给你一个开发任务,代码中很基础的字符串操作都去 问度娘,那开发效率很低的哦。 小编这里总结了python中常用的字符串操作函数,方便大家查找 。 1. 字母大小写转化- capitalize——首字母大写
testStr = 'zhangsan'print(testStr.capitalize()) # 输出Zhangsan
- upper——把字符串中所有小写写字母转为大写
testStr = 'ZhAngsan'print(testStr.upper())# 输出ZHANGSAN
- lower——把字符串中所有大写字母转为小写
testStr = 'ZhAngsan'print(testStr.lower()) # 输出zhangsan
- casefold——把字符串中所有大写字母转为小写。lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
testStr = 'ß'print(testStr.casefold()) # 输出ss,因为德语的"ß"正确的小写是"ss"
2. 填充字符串
- center——填充字符。第一个参数代表填充后字符串的总长度,第二个参数代表要填充的字符(注意只能填充一种,填充"=+"这样的不行哦)
testStr = "zhangsan"print(testStr.center(20,"=") # 输出======zhangsan=====
- ljust——向右填充(填充的内容在字符串的右边)
- rjust——向左填充(填充的内容在字符串的左边)
testStr = "ABCD"var=testStr.ljust(10,"*")var1=testStr.rjust(10,"*")print("ljust的输出:",var)print("rjust的输出:",var1)# 输出内容:# ljust的输出:ABCD******# rjust的输出:******ABCD
3. 字符串统计
- count——统计字符串出现的次数。第一个参数代表要统计的字符串,第二个参数代表起始位置,第三个参数代表结束位置(注意从0开始检索哦)
testStr = "zhangsan"print(testStr.count("an",3,10) # 输出1,在zhangsan这个字符串中从第3到到第10个位置"an"出现1次
- find——统计字符串出现的位置。第一个参数代表要统计的字符串,第二个参数代表起始位置,第三个参数代表结束位置(注意从0开始检索哦),一旦检索到便停止不再继续检索了
testStr = "zhangsan"print(testStr.find("an",3,10) # 输出6,在zhangsan这个字符串中从第3到到第6个位置开始匹配到了,于是返回6,如果没有匹配到返回-1
- index——统计字符串出现的位置。第一个参数代表要统计的字符串,第二个参数代表起始位置,第三个参数代表结束位置(注意从0开始检索哦),一旦检索到便停止不再继续检索了
testStr = "zhangsan"print(testStr.index("an",3,10) # 输出6,在zhangsan这个字符串中从第3到到第6个位置开始匹配到了,于是返回6,如果没有匹配到程序会报错,程序终止运行
4. 格式化字符串
- format——格式化字符串
写法一:testStr = hello {a},my name is {name},{age}str = testStr.format(a="python",name="zhangsan",age=28)print(str)# 输出hello python,my name is zhangsan,28# {a}和pyrhon对应,{name}和zhangsan对应,{age}和28对应-------------------------------------------------------------------------------写法二:testStr = 'hello {0},my name is {1},{2}str = testStr.format("python","zhangsan",28)print(str)# {}中用0,1,2…数字代替,"python","zhangsan",28会依次对应上去
- format_map——格式化字符串
testStr = 'hello {a},my name is {name},{age}'str = testStr.format_map({"a":"python","name":"python","age":28}) # 字典格式print(str)# 输出hello python,my name is python,28
- expandtabs——把字符串中的 tab 符号('\t')转为空格,参数代表空格的个数。默认数量为8。
testStr = "name\tage\ttel\nzhangsan\t28\t138****0000\nlisi\t38\t139****0000\nwangwu\t48\t170****0000\n"var = testStr.expandtabs(15)print(var)# 输出结果name age telzhangsan 28 138****0000lisi 38 139****0000wangwu 48 170****0000
说明:如上示例,"name\t"因为遇到了"\t",于是"\t"被转换为空格,空格的个数为15个。从头开始数,数到第一个\t正好为15个空格,不足则补空格,如果还有\t,接着从第一个\t数到第二个\t仍然为15个空格,以此类推直到最后一个\t结束。
- lstrip、rstrip、strip——去除字符串中的【空格、\t(制表符)、\n(换行符)】,lstrip去除左边的【空格、\t、\n】,rstrip去除右边的【空格、\t、\n】,strip两边都处理。还以传入参数,如lstrip("ab")就是去除字符串前面的"ab"。注:传入参数的时候是按照贪婪匹配的原则匹配的,而不需要一定是完全匹配哦,没明白?看下面的例子:
testStr = "acbddfffgg"var=testStr.rstrip("34fgtjk")print(var)
思考一下上面的例子输出的结果是什么?
答案是:acbdd。要从字符串右边去除的字符串是"34fgtjk",它会按照34fgtjk"不提那个的组合去acbddfffgg里匹配,tjk匹配不到,但是fg是可以和是可以匹配到的。而且是不管有多少个f和多少个g都全部去除掉了。
5. 判断
- isalnum——判断字符串中是否只是由字母和数字组成
testStr = "zhang231san#"var = testStr.isalnum()print(str)# 输出False,因为字符串中的#不是字母或数字
- isdecimal——判断是否是是数字(十进制的数)
- isdigit——判断是否是数字
- isnumeric——判断数字isdigit比isdecimal更厉害一点哦,比如"⑤"这样的数字,isdigit返回true, isdecimal返回false。isnumeric对数字的判断比较逆天,比如"五拾Ⅶ"这样有构成的数字,仍然可以返回true。
- isalpha——字符串只包含字母时返回true(汉字也返回true哦)
- startswith——判断以某个字符串开头
- endswith——判断以某个字符串结尾
- isprintable——判断字符串中是否包含了不可见的符号。
testStr = "avfggsda"var=testStr.isprintable()print(var)# 输出true----------------------------testStr = "avfgg\tsda\n"var=testStr.isprintable()print(var)# 输出false,因为字符串中包含了\t分割符和\n换行符
- isspace——判断字符串中是否全部为空格
- join——将字符串按照指定的字符串进行拼接
testStr = "ABCD"var="_".join(testStr)print(var)# 输出A_B_C_D
7. 字符串分割
- partition——从左至右按照指定的字符串分割。
testStr = "abfAgjeAjkerAertyiq"var=testStr.partition("A")print(var)# 输出:('abf', 'A', 'gjeAjkerAertyiq')
- rpartition——从右至左按照指定的字符串分割。
testStr = "abfAgjeAjkerAertyiq"var=testStr.rpartition("A")print(var)# ('abfAgjeAjker', 'A', 'ertyiq')
partition和rpartition只能分割成三部分:左边的一部分,指定字符串本身一部分,右边一部分。
- split——从左至右分割。
testStr = "abfAgjeAjkerAertyiq"var=testStr.split("A")print(var)# 输出:['abf', 'gje', 'jker', 'ertyiq']
- rsplit——从右至左分割。
testStr = "abfAgjeAjkerAertyiq"var=testStr.rsplit("A",2)print(var)# 输出 ['abfAgje', 'jker', 'ertyiq']
8. 字符串的索引、切片操作
- 索引
testStr = "abcdef"var=testStr[1] # 1就是b对应的索引值(从0开始开始)print(var)# 输出 b
- 切片
testStr = "abcdef"var=testStr[1:5] # 代表索引值大于等于1,小于5的字符串(左闭右开区间)print(var)# 输出:bcde
9. 统计字符串中字符个数
- len()
testStr = "你好"var=len(testStr)print(var) # 输出 2这里在python2.7中输出可能并不是2,而是6。为什么?因为如果按照UTF-8编码汉子的话,一个汉子占3个字节,所以输出6。
10. 替换字符串中的内容
- replace——替换字符串中的内容。第一个参数:要替换的字符串。第二个参数:替换后的字符串。第三个参数(非必需,默认全部):替换的次数。
testStr = "你好:tom,你好:jim,你好:jerry"var=testStr.replace("你好","hello",2)print(var)# 输出:hello:tom,hello:jim,你好:jerry
关于python中字符串的常用操作函数就分享到这里啦,不要走开,下期我们分享python中其他数据类型的常用函数哦。 前期属于打基础的阶段,内容比较枯燥,但是大家要坚持,没有扎实的基础写不出好的代码哦。 From hero to zero 一起学习进步 扫码关注我