一、String字符串
1.分割和合并
1.1 str1.split(str2, num)
功能:以str2为分割截取字符串,num默认为str1.count()
若给定num 后,则截取num个字符串,剩余的不再进行截取。
str1 = "how are you , i am fine thank you" #使用空格进行分割 list1 = str1.split(" ") print(list1) #结果 ['how', 'are', 'you', ',', 'i', 'am', 'fine', 'thank', 'you']
1.2 str1.splitlines([keepends])
功能:字符串会按照行('\r','\r\n','\n')进行分割,返回一个包含各行作为元素的列表,如果参数keepends的值为False,不包含换行符,如果为True,则保留换行符。
str2 = '''how are you ? i am fine ! ''' list2 = str2.splitlines() print(list2) #结果 ['how are', 'you ?', 'i am', 'fine', '!']
str2 = '''how are you ? i am fine ! ''' list2 = str2.splitlines(keepends=True) print(list2) #结果 ['how are\n', 'you ?\n', 'i am\n', 'fine\n', '!\n']
1.3 str1.join(seq)
功能:以指定字符串作为分隔符,将seq中的所有元素合并成为一个新的字符串
list2 = ['you', 'are', 'very', 'great', '!'] str3 = ' '.join(list2) print(str3) #结果 you are very great !
str1 = "how are you , i am fine thank you" str3 = "*".join(str1) print(str3) #结果 h*o*w* *a*r*e* *y*o*u* *,* *i* *a*m* *f*i*n*e* *t*h*a*n*k* *y*o*u
注意:如果连接的是字符串,则它会把字符串中的每个字符使用指定字符连接。
2.获取最大最小字符
2.1 max(str)
功能: 返回字符串str中最大的字母
str1 = "how are you , i am fine thank you" print(max(str1)) #结果 y
2.2 min(str)
功能:返回字符串str中最小字母
str1 = "how are you , i am fine thank you" print(min(str1)) #结果 ‘ ’
注意:比较的是ASCII码值
3.字符串的替换
3.1 replace(old , new [, count])
功能:将字符串中的old替换成new,若不指定count,则默认全部替换,若指定count,则替换前count个
str1 = "how are you , i am fine thank you" str2 = str1.replace("you" ,'me') print(str2) #结果 how are me , i am fine thank me
3.2 字符串映射替换
参数一:要转换的字符 参数二:目标字符
dic = str.maketrans(oldstr, newstr)
str2.translate(dic)
str5 = "aaa bbb ccc deee" dic = str5.maketrans("ac", "21") # a--2 c--1 str7 = "how are you ,u ewe " print(str7.translate(dic)) #结果 how 2re you ,u ewe #注意:很少用
4.判断字符串的开头结尾
str.startswith(str1, start=0, end=len(str))
功能:在给定的范围内判断字符串是否以给定的字符串开头,如果没有指定范围,默认整个字符串
str1 = "aaa bbb ccc deee" print(str1.startswith("aa")) #结果 True str1 = "aaa bbb ccc deee" print(str1.startswith("aa", 3, 9)) #结果 False
str.endswith(str, start=0, end=len(str))
功能:在给定的范围内判断字符串是否以指定的字符串结尾,若没有指定范围,默认为整个字符串
str1 = "aaa bbb ccc deee" print(str1.endswith("e")) #结果 True str1 = "aaa bbb ccc deee" print(str1.endswith("e", 3 ,9)) #结果 False
5.编码与解码
str.encode(encoding="utf-8", errors="scrict")
功能:字符串的编码,若不指定encoding则默认选择utf-8
str1 = "你好吗?" data = str1.encode() print(data) print(type(data)) #结果 b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f' <class 'bytes'>
str.decode(encoding="utf-8")
"hello".encode("utf-8").decode()
功能:对字符进行解码,若不指定编码格式,则默认选择utf-8
str1 = "你好吗?" data = str1.encode() print(data) print(type(data)) data2 = data.decode() print(data2) print(type(data2)) #结果 b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f' <class 'bytes'> 你好吗? <class 'str'>
注意:解码时的编码格式要与编码时的保持一致
拓展:errors = ignore 的时候,忽略错误
6.判断是否为字母或数字
str.isalpha()
功能:判断字符串至少有一个字符,并且所有的字符都是字母,若为真则返回True,否则返回False
注意:中文没有考虑在内
str8 = "hello ni hao " print(str8.isalpha()) #结果 False str9 = "hellonahao" print(str9.isalpha()) #结果 True
str.isalnum()
功能:判断一个字符串至少有一个字符,并且所有的字符都是字母或数字则返回True否则返回False
注意:中文不考虑在内
str10 = "sc22xdcd" print(str9.isalnum()) print(str10.isalpha()) #结果 True False
7.判断大小写
str.isupper()
功能:若字符串中包含至少一个字母的字符,并且这些字母都是大写,则返回True,否则返回False
str10 = "AA2221 111" print(str10.isupper()) #结果 True str10 = "AAaaa" print(str10.isupper()) #结果 False
str.islower()
功能:若字符串中包含至少一个字母的字符,并且这所有的字母都是小写,则返回True,否则返回False
str10 = "aa2221 111" print(str10.islower()) #结果 True
8.判断是否包含特殊字符
8.1 str.istitle()
功能:如果一个字符串是标题化的则返回True,否则返回False
【标题化】每个首字母大写
str1 = "Hello World" print(str1.istitle())
8.2 str.isdigit()
isdigit() True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无
print("123".isdigit()) print("123a".isdigit()) #结果 True False
同上
str.isnumeric()
功能:若字符串中只包含数字字符,则返回True,否则返回False
isnumeric() True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节)
8.3 str.isdecimal()
功能:检查字符串是否只包含十进制字符,如果是返回True,否则返回False
isdecimal() True: Unicode数字,,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节)
print("123".isdecimal()) print("123z".isdecimal()) #结果 True False
num = "1" #unicode num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = "1" # 全角 num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = b"1" # byte num.isdigit() # True num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal' num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric' num = "IV" # 罗马数字 num.isdigit() # True num.isdecimal() # False num.isnumeric() # True num = "四" # 汉字 num.isdigit() # False num.isdecimal() # False num.isnumeric() # True
8.4 str.isspace()
功能:如果字符串只包含空格,则返回True,否则返回False
print(" ".isspace()) print("\t".isspace()) print("\n".isspace()) print("\r".isspace()) print(" qq".isspace()) #结果 True True True True False
9.ASCII码转换
9.1 ord(str)
功能:获取字符串的整数表示 ASCII码值
print(ord("A")) print(ord("你")) #结果 65 20320
9.2 chr(str)
把编码转成对应的字符
print(chr(68)) print(chr(20190)) #结果 D 仞