08python学习笔记之处理字符串常用的方法

字符串中常用的方法

字符串的长度
len(str) 求字符串str的长度
字符串中字母大小写转换
lower() 将字符串中的大写字母转换成小写
upper() 转换字符串中的小写字母为大写字母
swapcase() 大写转小写,小写转大写
capitalize() 首字母大写其他小写
title() 每个单词的额首字母大写
判断字符串中字符是数字、英文大小写、空格
isalpha() 如果字符串中至少有一个字符且所有的字符都是字母(不能有空格和字母)则返回True,否则返回False
islower() 如果字符串中至少有一个英文字符且所有的英文字符都是小写的英文字母(可以有数字空格)则返回True,否则返回False
isupper() 如果字符串中至少有一个英文字符且所有的英文字符都是大写的英文字母(可以有数字空格)则返回True,否则返回False
istitle() 如果字符串的每一个单词第一个字母是大写返回Ture否则返回False
isalnum() 如果字符串中至少有一个字符且所有的字符都是字母或数字则返回True,否则返回False
isdigit() 如果字符串中只包含数字返回Ture否则返回False
isnumeric() 如果字符串中只包含数字返回Ture否则返回False
isdecimal() 如果字符串中只包含十进制数字返回Ture否则返回False
isspace() 如果字符串只包含空格时返回Ture否则返回False
判断字符串的开头结尾单词
startwith(str,start = 0, end = len(str)) 在给定的范围内字符串是否以str开头,如果没有给定范围,默认为整个字符串
endwith(str,start = 0, end = len(str)) 在给定的范围内字符串是否以结尾,如果没有给定范围,默认为整个字符串
字符串的对齐与填充
center(width,fillchar) 返回一个指定宽度的居中的字符串,fillchar为填充的字符,默认为空格
ljust(width,[,fillchar]) 返回一个指定宽度的左对齐的字符串,fillchar为填充的字符,默认为空格
rjust(width,[,fillchar]) 返回一个指定宽度的右对齐的字符串,fillchar为填充的字符,默认为空格
zfill(width) 返回一个长度为width的字符串,原字符串右对齐,前面补0
字符串的查找
count(str[,start][,end]) 返回str在查找范围内的字符串出现几次
find(str[,start][,end]):

从左向右检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾,

得到的是第一次出现的开始下标。如果没有返回-1

rfind(str[,start][,end])

从右向左检测str字符串是否包含在字符串中,可以指定范围,

默认从头到尾,得到的是第一次出现的开始下标,如果没有返回-1

index(str,start=0,end=len(str)) 跟find()一样,只不过如果str不存在的时候会报一个异常
rindex(str,start=0,end=len(str)) 跟rfind()一样,只不过如果str不存在的时候会报一个异常
字符串的分割
split(str = "",num) 返回值为列表,以str为分隔符截取字符串,num指定截取num个
Splitlines([keepands,])   

按照('|r'  '|r|n'  '|n'  )分割,返回一个包含作为符的一个行数的列表

keepends ==True:会保留换行符

将集合拼接成字符串
"".join(seq) 以""之间的字符串分隔符,将seq(集合)中的所有元素组合成一个字符串
 
字符串的截取切片
[start,end,step] 从下标为start 开始提取,到下标为到end - 1,步长为 step
[下标] 读取此下标的字符串
字符串的截去
lstrip(str) 会截掉字符创左侧指定的字符,默认为空格
rstrip(str) 会截掉字符创右侧指定的字符,默认为空格
字符串的替换
replace(oldstr, newstr , count) 用newstr替换oldstr,默认是全部替换,如果指定了count,那么知替换前count个

maketrans()方法用来生成字符映射表

而translate()方法则按映射表中定义的对应关系转换并替换其中的字符

字符串的编码


encode(encoding = "utf-8",errors = "strict")编码

error:"ignore"错误忽略例如:

str13.encode("utf-8", "ignore")

decode("utf-8", "ignore") 解码
其他
max() 比较字符串的大小从左至右比较字符串中字符的ASCII码
min() 比较字符串的大小从左至右比较字符串中字符的ASCII码
ord() 转换成一个字符的ASCCI码
char(num) 以数字num为ACSII码的字符
eval(str)

将str当成命令来处理例如:eval("12 + 3")    为15

str + str1 将字符串str 与 str1拼接到一起
str *3 将3个str拼接到一起
i  in str 判断字符i是否在字符串str中

1、len()字符串的长度

str = "wnike all day"
print(len(str))
print(str[12])#第十三个字符的下标为12
print(str[len(str) -1])

运行结果:

2、lower()  将字符串中的大写字母转换成小写

str1 = "wNIke aLL aLL daY"
print("最初的字符串", str1)
print("======全部大写转小写======")
str2 = str1.lower()
print(str2)
print("str本身没有改变", str1)

运行结果:

3、upper() 转换字符串中的小写字母为大写字母

str1 = "wNIke aLL aLL daY"
print("=====小写转大写====")
str3 = str1.upper()
print(str3)
print("str本身没有改变", str1)
print("\n")

运行结果:

4、swapcase() 大写转小写,小写转大写

str1 = "wNIke aLL aLL daY"
print("======大小写相互转换========")
str4 = str1.swapcase()
print(str4)
print("str本身没有改变", str1)
print("\n")

运行结果;

5、capitalize():首字母大写其他均转换成小写

str1 = "wNIke aLL aLL daY"
print("======首字母大写========")
str5 = str1.capitalize()
print(str5)
print("str本身没有改变", str1)
print("\n")

运行结果:


6、title(): 每个单词的首字母大写

str1 = "wNIke aLL aLL daY"
print("======每个单词的首字母大写========")
str6 = str1.title()
print(str6)
print("str本身没有改变", str1)
print("\n")

运行结果:

7、isalpha()如果字符串中至少有一个字符且所有的字符都是字母(不能有空格和字母)则返回True,否则返回False

str = "wnikeallday"
str1 = "WNikEALLday"
str2 = "wnike all day"#有空格
print("====isalpha()====")
print(str.isalpha())
print(str1.isalpha())
print(str2.isalpha())

运行结果:


8、islower():如果字符串中至少有一个英文字符且所有英文字符都是小写的英文字母(字符串中可以包含数字)则返回True,否则返回False
isupper():如果字符串中至少有一个英文字符且所有英文字符都是大写的英文字母(字符串中可以包含数字)则返回True,否则返回False

str8 = "WNIKEALLDAY"
print("====isupper()===")
print(str8.isupper())
print("12121 WBGGG".isupper())
print("======islower()=======")
print("454ahdfahdf".islower())
print("jadaH".islower())

运行结果:

9、istitle():如果字符串的每一个单词第一个字母是大写返回Ture否则返回False

print("====istitle()=====")
print("Wnike All Day".istitle())
print("Wnike all Day".istitle())

运行结果:

10、isalnum():如果字符串中至少有一个字符且所有的字符都是字母或数字则返回True,否则返回False

str10 = "123abadssaf"
print("====isalnum()======")
print(str10.isalnum())
print("124564 afjla".isalnum())#有空格返回False

运行结果:


11、isdigit():如果字符串中只包含数字返回Ture否则返回False
isnumeric():如果字符串中只包含数字返回Ture否则返回False
isdecimal():如果字符串中只包含十进制数字返回Ture否则返回False

print("====isdigit()=====")
print("122".isdigit())
print("12121ag".isdigit())
print("====isnumeric()====")
print("1122a".isnumeric())
print("=====isdecimal()=====")
print("125".isdecimal())

运行结果:

12、isspace():如果字符串只包含空格时返回Ture否则返回False

print("=====isspace()======")
print(" ".isspace())
print("  ".isspace())#两个空格
print("\t".isspace())
print("\r".isspace())
print("\n".isspace())

运行结果:


 

13、startwith(str,start = 0, end = len(str)):在给定的范围内字符串是否以str开头,如果没有给定范围,默认为整个字符串
         endwith(str):字符串是否以str结尾

str13 = "wnike all day give me five"
print(str13.startswith("wnike"))
print(str13.startswith("wnike", 5, len(str13) - 1))
print(str13.endswith("five"))

运行结果:


14、center(width,fillchar):返回一个指定宽度的居中的字符串,fillchar为填充的字符,默认为空格

str1 = "wNIke aLL aLL daY"
print("=======居中填充字符========")
str14 = str1.center(30, "*")
print(str7)
print("字符串的长度为:", len(str14))
print("str本身没有改变", str1)
print("\n")

运行结果:


15、ljust(width,[,fillchar]):返回一个指定宽度的左对齐的字符串,fillchar为填充的字符,默认为空格
rjust(width,[,fillchar]):返回一个指定宽度的右对齐的字符串,fillchar为填充的字符,默认为空格

str1 = "wnike all day"
print("=======左/右对齐填充======")
str15 = str1.ljust(40, "*")#左对齐
print(str15)
print("str15的长度为",len(str15))
str16 = str1.rjust(40, "*")#右对齐
print(str16)
print("str16的长度为",len(str16))
print("str本身没有改变", str1)
print("\n")

运行结果:

16、zfill(width):返回一个长度为width的字符串,原字符串右对齐,前面补0

str1 = "wnike all day"
print("======zfill()======")
str16 = str1.zfill(40)
print(str16)
print("字符串str16的长度为", len(str16))
print("str本身没有改变", str1)
print("\n")

运行结果:


 

17、count(str[,start][,end]):返回str在查找范围内的字符串出现几次

str1 = "wnike all all day"
print("========11count========")
str17 = str1.count("all")
print(str17)
print("str本身没有改变", str1)
print("\n")

运行结果:


18、find(str[,start][,end]):
从左向右检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾,得到的是第一次出现的开始下标
如果没有返回-1
rfind(str[,start][,end]):
从右向左检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾,得到的是第一次出现的开始下标
如果没有返回-1

str1 = "wnike aLL all all day"
print("==========find=============")
str18 = str1.find("aLL")#区分大小写
print(str18)
print(str1.find("all", 8, len(str1)))
print(str1.find("ALL"))
print("str本身没有改变", str1)
print("\n")
str19 = str1.rfind("aLL")
print(str19)
print(str1.find("all", 9, len(str1)))
print("str本身没有改变", str1)
print(str1[len(str1)-1])

运行结果:

20、index(str,start=0,end=len(str))跟find()一样,只不过如果str不存在的时候会报一个异常
        rindex(str,start=0,end=len(str))跟rfind()一样,只不过如果str不存在的时候会报一个异常

str1 = "wnike aLL all all day"
print("==========index=============")
str20 = str1.index("aLL")#区分大小写
print(str20)
print(str1.index("aLL", 0, len(str1)))
print("str本身没有改变", str1)
print("\n")
print("==========rindex=============")
str21 = str1.rindex("aLL")#区分大小写
print(str21)
print(str1.rindex("aLL", 0, len(str1)))
print("str本身没有改变", str1)
print("\n")

运行结果:


 

20、split(str = "",num)返回值为列表,以str为分隔符截取字符串默认的有默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num指定截取num个。按行切割:返回值为list
Splitlines([keepands,])   按照('|r'  '|r|n'  '|n'  )分割,返回一个包含作为符的一个行数的列表
keepands:默认为False。keepends ==True:会保留换行符

str1 = "wnike*all***day****give*me*five"
str2 = "wnike\nall\nday\ngive\nme\nfive"
str3 = "wnike\tall\tday\tgive\tfive"
str4 = str1.split("*")
str5 = str1.split("*",4)
str6 = str2.split()
str7 = str3.split()
print(str4)
print("======分割4次=======")
print(str5)
print(r"========默认的是\n\t========")
print(str6)
print(str7)

运行结果:


按行分割:

str5 = '''wnike all day!
give me five!
just do it!
'''
print(str5.splitlines(True))#保留换行符
print(str5.splitlines(False))

运行结果:

21、将列表合成一个字符串
''".join(seq):以指定的字符串分隔符,将seq(集合)中的所有元素组合成一个字符串


list1 = ["wmike", "all", "day"]
str2 = " ".join(list1)#以空格
str3 = "&^%$".join(list1)#以指定字符&^%$

print("=====以空格隔开=======")
print(str2)
print("=====以指定的字符隔开=====")
print(str3)

运行结果;

22、字符串的切片:[start,end,step]  从下标为start 开始提取,到下标为到end - 1,步长为 step

str1 = "wnike all day"#13个字符
str11 = str1[1: 8]
#从给定下标开始截取到给定下标之前一个字符串
str12 = str1[:13]#从头截取到尾部
str13 = str1[:len(str1)]
str14 = str1[:]#从给定下标截取到尾部
str15 = str1[:-1]
str16 = str1[:len(str1):2]

print("======从头截到位=====")
print(str12)
print(str13)
print(str14)
print(str15)

print("=====从头截到位步长为2======")
print(str16)

运行结果:

23、通过下标可以读取字符串

str1 = "wnike all day"
print("====通过下标可以读取字符串中的字符======")
print(str1[0])
print(str1[1])
print(str1[len(str1) -1])
print(str1[12])
print(str1[-1])

运行结果:

23、lstrip(str):会截掉字符创左侧指定的字符,默认为空格
        rstrip(str):会截掉字符创右侧指定的字符,默认为空格

str1 = "wnike all all day"
print("==========lstrip=========")
str11 = str1.lstrip("wnike")
print(str11)
print(str1.lstrip())
print(str1.lstrip("day"))
print("str本身没有改变", str1)
print("\n")

print("==========rstrip=========")
str12 = str1.rstrip("all")
print(str12)
print(str1.rstrip())
print(str1.rstrip("day"))
print("str本身没有改变", str1)
print("\n")

运行结果:

24、字符串的替换
replace(oldstr, newstr , count):用newstr替换oldstr,默认是全部替换,如果指定了count,那么知替换前count个

创建映射表:
maketrans()方法用来生成字符映射表,而translate()方法则按映射表中定义的对应关系转换并替换其中的字符

str1 = "wnike all day day"
str10 = str1.replace("day", "time", 1)
str11 = str1.replace("day", "time", 2)
print("====替换=====")
print(str10)
print(str11)

运行结果:

创建映射表:

str1 = str.maketrans("al", "46")#创建映射表
#a --->4    l --->6
str2 = "wnike all day"
str21 = str2.translate(str1)
print("======输出结果为:=====")
print(str21)

运行结果:

25、字符串的编码:
encode(encoding = "utf-8",errors = "strict")
error:"ignore"错误忽略


str13 = "wnike all day"
data = str13.encode("utf-8", "ignore")
data01 = str13.encode("utf-8")
print("======编码=======")
print(data)
print(data01)
#解码  注意:要与编码时的编码一至


data1 = data.decode("utf-8", "ignore")
data2 = data.decode("gbk", "ignore")

print("======解码=======")

print(data1)
print(data2)

运行结果:

26、字符串的其他方法的例子

str1 = "wnike all day "
str2 = "we are champions"
str3 = "12 + 3"
str4 = "-15"
print("====字符串相加相乘====")
print(str1 + str2)
print(str1*3)
print("=====成员运算符在字符串中的使用:in====")
print("wnike" in str1)
print("======min()max()的使用=========")
print(max(str1))
print("*" + min(str1) + "*")#打印的是空格
print("=====字符与ACSII码的转换======")
print(ord("A"))
print(chr(65))
print("======eval()的使用=====")
print(eval(str3))
print(eval(str4))

运行结果:

猜你喜欢

转载自blog.csdn.net/boy_of_god/article/details/81169079
今日推荐