python 3 字符串方法操作汇总
基础数据类型:str
1.1 字符串大小写转换
- 所有字母大写 : string.upper()
- 所有字母小写 : string. lower()
- 第一个单词的第一个字母大写,其他字母小写 : string.capitalize()
- 非字母隔开的部分首字母大写: string. title()
- 大小写反转 : string.swapcasw()
1 s = 'biZZ gates is001number' 3 print(s.upper()) 5 print(s.lower()) 7 print(s.capitalize()) 9 print(s.title()) 11 print(s.swapcase())
运行结果:
BIZZ GATES IS001NUMBER ### 所有字母大写 bizz gates is001number ### 所有字母小写 Bizz gates is001number ### 第一个单词的第一个字母大写 Bizz Gates Is001Number ### 非字母隔开的部分首字母大写 BIzz GATES IS001NUMBER ### 大小写反转
1.2 去除空格
- 去除字符串首尾的空格: string.strip()
- 去除左边(开头)空格:string.lstrip()
- 去除右边(结尾)空格:string.rstrip()
--- 当参数为空时, string.strip()将两端的空白符、\r、\n(换行符)、\t(制表符:相当于tab键,四个空格) 都删除;
--- 当传入参数后,string.strip()函数会把传入的参数拆解成一个个字符,从头到尾循环直至全部去掉
1 s = " bizz gates is number1 " 2 print(s.strip()) # 删除前后空格 3 print(s.lstrip()) # 删除开头空格 4 print(s.rstrip()) # 删除结尾空格
运行结果:
1 bizz gates is number1 2 bizz gates is number1 3 bizz gates is number1
1 s1 = "bbbccc123dddbbcc" 2 print(s1.strip('bc')) # 删除字母b和c 3 print(s1.lstrip("bc")) # 删除头部的字母b和c 4 print(s1.rstrip("bc")) # 删除结尾的字母b和c
运行结果:
1 123ddd 2 123dddbbcc 3 bbbccc123ddd
1.3 字符串切割(字符串转换列表的方法)
- string.split() 将字符串切割后返回为一个列表
- string.spit() 不传入参数,则按照空格去切割,返回列表
- string.split("m") 按元素m进行切割,返回列表
- string.split("m",n) 按元素 m 切割 n 次,返回列表
1 s = "angelababy" 2 print(s.split("a")) # 以元素a对字符串进行切割 3 print(s.split("a",2)) # 以元素a对字符串进行2次切割
运行结果:
['', 'ngel', 'b', 'by'] ['', 'ngel', 'baby']
1.4 字符串替换
- string.replace(old,new,count)
- string.replace(m,n) 将字符串所有的m都替换成n
- string.replace(m,n,count) 将old值替换成new值,替换count次
1 s = "angela baby baby" 2 print(s.replace("a","h")) ### 将字符 a 替换成 h 3 print(s.replace("a","h",2)) ### 将前两个字符 a 替换成 h
运行结果:
hngelh bhby bhby hngelh baby baby
1.5 判断字段串组成
- string.isalnum() 判断字符串是否由字母或数字组成
- string.isalpha() 判断字符串是否由字母组成
- string.isdigit() 判断字符串是否由数字组成
- string.isspace() 判断字符串是否由空格组成
1.6 其他方法汇总
### 通过元素查找字符串索引 :find() 、index()
注:find() 和 index() 使用方法一样,唯一的区别是 find()找不到返回 -1 ,index()找不到报错。
1 str = "angela baby baby"
2 print(str.find("g")) #查找元素 m 在字符串中的第一个索引 3 print(str.find("a",2,10)) # 在字符串索引为2到10之间找元素 a 的第一个索引值 # find()方法找不到返回 -1
4 print(str.index("g")) #通过元素m查找索引 5 print(str.index("a",2,10)) #在字符串索引为2到10之间找元素 a 的第一个索引值
#find()方法找不到就报错
运行结果:
2
5
2
5
### 1) %s 格式化
# 第一种 1 s = "我叫%s,今年%d岁,身高%.2f。"%("佩琪",6,135.565) 2 print(s)
# 第二种(使用键值对)
1 s = "我叫%(name)s,今年%(age)d岁,身高%(high).2f。"%{"name" :"佩琪","high" : 135.565,"age" :6}
2 print(s)
### 2) format 格式化(注:若格式化的语句中已存在百分号(%),则加上%进行转义,写法:我的学习进度为80%%)
# 第一种(按顺序替换)
1 s = "我叫{},今年{}岁,身高{}。".format("佩琪","6","135") 2 print(s)
# 第二种(加入角标,可以重复利用) 1 s = "我叫{0},今年{1}岁,身高{2},你也叫{0}".format("佩琪","6","135") 2 print(s)
# 第三种(使用键值对,可以无序) 1 s = "我叫{name},今年{age}岁,身高{high}".format(name = "佩琪",high = 135,age ="6") 2 print(s)
运行结果:
我叫佩琪,今年6岁,身高135.56。
我叫佩琪,今年6岁,身高135。
我叫佩琪,今年6岁,身高135,你也叫佩琪
我叫佩琪,今年6岁,身高135
### 判断是否以某个元素开头/结尾 : startswith() 、 endswith()
1 str = "angela baby baby"
2 print(str.startswith("a")) #判断是否以m开头 3 print(str.startswith("m",7,16)) #判断第二个单词是否以m开头 4 print(str.endswith("y")) #判断是否以m结尾 #返回为bool值
运行结果:
True
False
True
### 计算字符出现的次数 : count()
1 str = "angela baby baby" 2 print(str.count("a")) # 查询元素 a 在整个字符串出现的次数 3 print(str.count("a",7,15)) # 查询元素 a 在索引为7~15之间出现的次数
运行结果:
4
2
### 1)填充 : join() 1 s = 'alexeweuesir' 2 s1 = '_'.join(s) 3 print(s1)
运行结果:
a_l_e_x_e_w_e_u_e_s_i_r
### 2)填充:center()
1 s = "angle bobyboby" 2 print(s.center(20)) ### 整个字符串为20个字符(未写参数,以空格填充),且字符串居中显示 3 print(s.center(20,"*")) ### 字符串以*填充20个字符,且字符串居中显示
运行结果:
angle bobyboby
***angle bobyboby***