python对字符串的处理
1.大小写转换返回字符串的小写、大写模式
①str.lower()----字母转换成小写
②str.upper()---字母转换成大写
③str.title()--字母转换为标题形式--单词首字母是大写,其余小写
④str.capitalize()--整个字符串变量的字母第一个大写,其余小写
⑤str.swapcase()--大写转换成小写,小写转换成大写
name = "ShaSha is a lucky girl"
print(name.lower()) # shasha is a lucky girl
print(name.upper()) # SHASHA IS A LUCKY GIRL
print(name.title()) # Shasha Is A Lucky Girl
print(name.capitalize()) # Shasha is a lucky girl
print(name.swapcase()) # sHAsHA IS A LUCKY GIRL
结果:
2.字符串的判断,判断是否以指定的字符串开头或结尾
①str.endswith(suffix[,start[,end]])---判断是不是以指定的字符串结尾
str.endswith(结尾字符串,开始索引,截止索引+1)
②str.startswith(suffix[,start[,end]])---判断是不是以指定的字符串开头
str.startswith(开始字符串,开始索引,截止索引+1)
#--------str.endswith("规定结尾字符",规定起始位置,规定结束位置)-------------------
message = "沙沙!!you are$ so beautiful"
# 判断是否以“beautiful”结尾--返回bool值
print(message.endswith("beautiful")) # True
# 从索引11算起($),结尾是不是"beautiful"
print(message.endswith("beautiful", 10)) # True
# 从索引17算起("beautiful"中的e),结尾是不是"beautiful"
print(message.endswith("beautiful", 17)) # False
# 从索引0到11,结尾是不是"beautiful"
# 注意:截止索引要比原来多1
print(message.endswith("beautiful", 0,12)) # False,应该是"are$"
print(message.endswith("are$", 0,12)) # True
3.字符串的填充
注:若长度width小于原字符串长度,则保留原字符串
1.让原有str居中显示,长度为20,左右'_'进行填充
name = "ShaSha"
print(name.center(20,"_"))
结果:
2.让原有的str靠左显示,长度为10,其余用*填充
name = "Maomao"
print(name.ljust(10,'*'))
结果:
3.让原有的str靠右显示,长度为10,其余用&填充
name = "Dog"
print(name.rjust(10,'&'))
结果:
4.字符串的分割
①str.partition(a)---从左往右分割字符串,根据a这个字符串为界点分成三部分,a左边,a,a右边
a = "美丽沙沙是个小太阳,沙沙每天充满正能量!"
print(a.partition("小太阳"))
结果:从左边第一个“沙沙”开始切割,返回元组类型
②str.rpartition(a) -从右往左分割字符串,根据a这个字符串为界点分成三部分,a左边,a,a右边
a = "美丽沙沙是个小太阳,沙沙每天充满正能量!"
print(a.rpartition("沙沙"))
结果:从右边的“沙沙”开始切割,返回元组类型
③str.split()--从左往右分割字符串,可以指定分割次数,不确定分割成几部分
a = "帅气的毛毛怪,我想请问,你愿意把你所有的零食,都给沙沙吗,她太想吃你好吃的零食了"
print(a.split(",")) # 不指定切割次数默认全切
print(a.split(",",2)) # 指定切割2次
结果:从左往右,根据第一个开始分割,返回列表类型
④str.splitlines()--从左往右分割字符串,专门用来分割换行符\n \r\n
a = "aaa\r\nbbb"
b = "aaa\nbbb"
print(a.splitlines(keepends=True))
print(b.splitlines())
结果:keepends表示保留换行符,返回列表