Python的字符串以及关于字符串的常用函数(day04)
一、字符串常用操作
使用单引号或者双引号括起来的任意字符串,都可称它为字符串。
一、字符串的拼接
1.使用“+”来进行拼接
str3 = str1 + str2
注意:不同类型不能使用加号进行拼接
2.使用“,”来进行拼接
print(str1,str2)
注意:会在逗号的位置产生一个空格
3.使用"%"来进行拼接,使用格式化的方式
print("%s%s"%(str1,str2))
4.使用"{},{}".format()来进行拼接
5.使用join函数来进行拼接
"".join(序列)
注意:序列中的元素必须是字符串
二、字符的重复输出
str1*n
功能:将str1重复n次输出
三、获取字符串的长度
len(str1)
四、访问字符串中的字符
使用索引【下标】的方式实现
str1[index]
index索引值/下标值 取值范围[0,len(str1))
索引值/下标值 从0开始数
索引值还可以为负,可以从-1开始,-1代表倒数第一个字符
五、字符串的截取
str1[start:stop:step]
参数一:从start开始取 默认0
参数二:到stop结束, stop取不到,默认len(str1)
参数三:步长 默认1 可以为负
判断是否包含指定的字符
字符 in 字符串
若字符串中包含指定的字符则返回True,否则返回False
二、字符串的常用函数
eval(str1)
功能:将str1转为一个有效的表达式并且返回计算的结果
a1 = "1,2,3,4"
print(type(a1)) # <class 'str'>
b1 = eval(a1)
print(type(b1)) # <class 'tuple'>
a2 = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a2)) # <class 'str'>
b2 = eval(a2)
print(type(b2)) # <class 'list'>
str(x)
功能:可以将x【number,bool,list,tuple,set,dict】转为字符串
a = 1
print(type(a)) # <class 'int'>
b = str(a)
print(type(b)) # <class 'str'>
str1.lower()
功能:将字符串中大写字母转为小写字母,并且返回一个新的字符串
a = "Aa,Bb,Cc,Dd"
print(a.lower()) #aa,bb,cc,dd
str1.upper()
功能:将字符串中的小写字母转为大写字母,并且返回一个新的字符串
a = "Aa,Bb,Cc,Dd"
print(a.upper()) # AA,BB,CC,DD
str1.swapcase()
功能:将字符串中的大写字母转为小写字母,将小写字母转为大写字母
并且返回一个新的字符串
a = "Aa,Bb,Cc,Dd"
print(a.swapcase()) # aA,bB,cC,dD
str1.capitalize()
功能:返回一个首字母大写其他字母都小写的字符串。
a = "Aa,Bb,Cc,Dd"
print(a.capitalize()) # Aa,bb,cc,dd
str1.title()
功能:返回一个标题化的字符,每个单词的首字母都大写,其他字母小写。
a = "aa,bb,cc,dd"
print(a.title()) # Aa,Bb,Cc,Dd
str1.center(width,fillchar)
功能:返回一个以width为宽度,str1居中的,使用fillchar填充的字符串。
print("Python".center(30," ")) # Python
print("Python".center(30,"*")) # ************Python************
str1.ljust(width,fillchar)
功能:返回一个以width为宽度,str1居左的,使用fillchar填充的字符串。
print("Pyhotn".ljust(30,"*")) # Pyhotn************************
str1.rjust(width,fillchar)
功能:返回一个以width为宽度,str1居右的,使用fillchar填充的字符串。
print("Pyhotn".rjust(30,"*")) # ************************Pyhotn
str1.zfill(width)
功能:返回一个以width为宽度,str1居右的,使用0填充的字符串。
print("Pyhotn".zfill(30)) # 000000000000000000000000Pyhotn
str1.count(sub,start,end)
功能:统计sub在str1中出现的次数,若不指定start与end则默认统计整个字符串
若指定start与end,则统计的范围[start,end)
str1 = "abc,abc,abc,bcd,cde,def"
print(str1.count("b") # 4
str1.find(sub,start,end)
功能:从左往右在str1中查找sub是否存在,若存在则返回第一匹配到的下标值,若不存在则返回-1
注意:若指定start与end,则在[start,end)范围内查询,若不指定则查询整个字符串。
str1 = "abc,abc,abc,bcd,cde,def"
print(str1.find("d")) # 14
print(str1.find("w")) # -1
str1.rfind(sub,start,end)
功能:从右往左在str1中查找sub是否存在,若存在则返回第一匹配到的下标值,若不存在则返回-1
注意:若指定start与end,则在[start,end)范围内查询,若不指定则查询整个字符串。
str1 = "abc,abc,abc,bcd,cde,def"
print(str1.rfind("d")) # 20
print(str1.rfind("w")) # -1
str1.index(sub,start,end)
功能:从左往右在str1中查找sub是否存在,若存在则返回第一匹配到的下标值,若不存在则报错
注意:若指定start与end,则在[start,end)范围内查询,若不指定则查询整个字符串。
str1 = "abc,abc,abc,bcd,cde,def"
print(str1.index("c")) # 2
str1.rindex(sub,start,end)
功能:从右往左在str1中查找sub是否存在,若存在则返回第一匹配到的下标值,若不存在则报错
注意:若指定start与end,则在[start,end)范围内查询,若不指定则查询整个字符串。
str1 = "abc,abc,abc,bcd,cde,def"
print(str1.rindex("c")) # 16
str1.strip(chars)
功能:去除str1左右两边的指定chars,若chars不给,默认去除空白符[\r\n\f\t ]
str1 = "aaabc,abc,abc,bcd,cdeaaa"
print(str1.strip("a")) # bc,abc,abc,bcd,cde
str1.lstrip(chars)
功能:去除str1左边的指定chars,若chars不给,默认去除空白符[\r\n\f\t ]
str1 = "aaabc,abc,abc,bcd,cdeaaa"
print(str1.lstrip("a")) # bc,abc,abc,bcd,cdeaaa
str1.rstrip(chars)
功能:去除str1右边的指定chars,若chars不给,默认去除空白符[\r\n\f\t ]
str1 = "aaabc,abc,abc,bcd,cdeaaa"
print(str1.rstrip("a")) # aaabc,abc,abc,bcd,cde
str1.split(seq,maxsplit)
功能:从左往右使用指定的seq对str1进行切割处理,若不指定seq则默认使用空白符来进行切分,
若不指定maxsplit默认全部切分。切分的结果以列表的形式返回。
str1 = "abc,abc,abc,bcd,cde"
print(str1.split(",")) # ['abc', 'abc', 'abc', 'bcd', 'cde']
print(str1.split(",",2)) # ['abc', 'abc', 'abc,bcd,cde']
str1.rsplit(seq,maxsplit)
功能:从右往左使用指定的seq对str1进行切割处理,若不指定seq则默认使用空白符来进行切分,
若不指定maxsplit默认全部切分。切分的结果以列表的形式返回。
str1 = "abc,abc,abc,bcd,cde"
print(str1.rsplit(",")) # ['abc', 'abc', 'abc', 'bcd', 'cde']
print(str1.rsplit(",",2)) # ['abc,abc,abc', 'bcd', 'cde']
str1.splitlines(keepend=False)
功能:将str1按行切片,并且将切片的结果作为一个列表返回。keepend默认为False,
当keepend为True的时候,显示切片的字符【\n】
str1 = """AAA
BBB
CCC
"""
print(str1.splitlines()) # ['AAA', 'BBB', 'CCC']
print(str1.splitlines(keepends=True)) # ['AAA\n', 'BBB\n', 'CCC\n']
str1.join(序列)
功能:将序列中的字符串以指定的str1进行拼接,并将拼接好的字符串返回。
str1 = "aa","bb","cc"
str2 = ";"
str3 = str2.join(str1)
str4 = "$".join(str1)
print(str3) # aa;bb;cc
print(str4) # aa$bb$cc
min(str1)
功能:返回str1中的最小字符【比较的是ASCII码值】
str1 = "aa","bb","cc"
print(min(str1)) # "aa"
max(str1)
功能:返回str1中的最大字符【比较的是ASCII码值】
str1 = "aa","bb","cc"
print(min(str1)) # "cc"
str1.replace(old,new,count)
参数一:被替换的字符串
参数二:新的字符串
参数三:替换的次数,若不指定默认全部替换
功能:使用new将str1中old字符串进行替换,若指定count则替换前count个,若不指定count,则全部替换。
str1 = "abc,cad,cad,cba"
print(str1.replace("a","A")) # Abc,cAd,cAd,cbA
print(str1.replace("a","A",2)) # Abc,cAd,cad,cba
判断字符串是否以xx开头
str1.startswith("xx"[,start][,end])
若是以xx开头则返回True,否则返回False,若指定范围,则取值范围为[start,end),
若不指定范围,则默认整个字符串
str1 = "abc,cad,cad,cba"
print(str1.startswith("abc")) # True
print(str1.startswith("abc",0,2)) # False
判断字符串是否以xx结尾
str1.endswith("xx")
若是以xx结尾则返回True,否则返回False,若指定范围,则取值范围为[start,end),
若不指定范围,则默认整个字符串
str1 = "abc,cad,cad,cba"
print(str1.endswith("cba")) # True
str1.encode()
将普通字符串转为二进制
str1 = "abc,ABC,123,中国"
print(str1.encode()) # b'abc,ABC,\xe4\xb8\xad\xe5\x9b\xbd,123'
str2.decode()
将二进制字符串转为普通字符串
str1 = (b'\xe4\xb8\xad\xe5\x9b\xbd')
print(str1.decode("utf-8"))
注意:编码的格式与解码的格式必须保持一致
str1.isalpha()
功能:判断str1是否为纯字母,若是则返回True,否则返回False。
注意:此功能没有考虑中文,中文默认也是字母
str1 = "123abc"
str2 = "abc中国"
str3 = "@abc"
print(str1.isalpha()) # False
print(str2.isalpha()) # True
print(str3.isalpha()) # False
str1.isalnum()
功能:判断str1是否由数字与字母组成,若是则返回True,否则返回False。
注意:此功能没有考虑中文,中文默认也是字母
str1 = "123abc"
str2 = "abc中国"
str3 = "@abc"
print(str1.isalnum()) # True
print(str2.isalnum()) # True
print(str3.isalnum()) # False
str1.isupper()
功能:判断str1中出现的字母是否全部为大写,若是则返回True,否则返回False
str1 = "ABC"
str2 = "abc"
str3 = "ABC中国"
print(str1.isupper()) # True
print(str2.isupper()) # False
print(str3.isupper()) # True
str1.islower()
功能:判断str1中出现的字母是否全部为小写,若是则返回True,否则返回False
str1 = "ABC"
str2 = "abc"
str3 = "abc中国"
print(str1.islower()) # False
print(str2.islower()) # True
print(str3.islower()) # True
str1.istitle()
功能:判断str1是否为标题化的字符串,若是则返回True,否则返回False
str1 = "ABC"
str2 = "abc"
str3 = "Abc"
str4 = "中国Abc"
str5 = "Abc中国"
print(str1.istitle()) # False
print(str2.istitle()) # False
print(str3.istitle()) # True
print(str4.istitle()) # True
print(str5.istitle()) # True
str1.isspace()
功能:判断str1中是否只包含空白符,若是则返回True,否则返回False。
str1 = " "
str2 = ""
str3 = "a"
print(str1.isspace()) # True
print(str2.isspace()) # False
print(str3.isspace()) # False
判断字符串中是否全部为数字
str1.isdigit():只能识别阿拉伯数字
str1.isdecimal():只能识别阿拉伯数字
str1.isnumeric():除了阿拉伯数字还可以识别中文的一二三
str1 = "1111" # 阿拉伯数字
str2 = "一二三" # 中文数字
str3 = "I" # 罗马数字
print(str1.isdigit()) # True
print(str2.isdigit()) # False
print(str3.isdigit()) # False
print(str1.isdecimal()) # True
print(str2.isdecimal()) # False
print(str3.isdecimal()) # False
print(str1.isnumeric()) # True
print(str2.isnumeric()) # True
print(str3.isnumeric()) # False