欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python的字符串以及关于字符串的常用函数(day04)

程序员文章站 2022-07-14 23:05:31
...

一、字符串常用操作

使用单引号或者双引号括起来的任意字符串,都可称它为字符串。
一、字符串的拼接
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