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()
功能:检查字符串是否只包含十进制字符【0,9】,如果是返回True,否则返回False
isdecimal() True: Unicode数字,,全角数字(双字节), False: 罗马数字,汉字数字 Error: byte数字(单字节)
print("123".isdecimal())
print("123z".isdecimal())
#结果
True
False
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
仞