字符串 str
重点:join(插入)、split(分隔)、find(查找)、strip(去除)、replace(替换)、upper 、lower
-join#将字符串的每一个元素按照指定分隔符进行拼接
1 test ='你是风儿我是沙' 2 print(test) 3 t = " " 4 v = t.join(test) 5 print(v)
结果:
你是风儿我是沙
你 是 风 儿 我 是 沙
-split#永远不包含分隔元素
1 test ="testsdhjnsgdkjnadsmdkasff" 2 v = test.split('s') 3 print(v)
结果:['te', 't', 'dhjn', 'gdkjnad', 'mdka', 'ff']
1 v = test.split('s',3)#切割三次 2 print(v) 3 #结果:['te', 't', 'dhjn', 'gdkjnadsmdkasff']
-find 方法:查找字符串中符合条件的内容
test = "aLexalex" v = test.find("ex") #从开始往后找,找到第一个之后,获取其位置 print(v) #结果:2
test = "aLexalex" v = test.find("ex",3,8)#从开始往后找,找到第一个之后,获取其位置从第5到7位 print(v) #结果:6
-lstrip rstrip strip#去除空白,\n \t 和指定参数
1 test = ' alex dd' 2 v1 = test.lstrip()#删除左边的空格 3 v2 = test.rstrip()#删除右边的空格 4 v3 = test.strip()#删除左右两边的空壳 5 print(v1) 6 print(v2) 7 print(v3) 8 #结果alex dd 9 #alex dd 10 #alex dd
test = 'dd alex dd' v = test.lstrip('dd')#删除从左到右 的第一个'dd' print(v) #结果:alex dd
-replace
test = 'alexalexalex' v = test.replace('ex','bb') #替换原字符串的内容为指定内容 print(v) #结果:albbalbbalbb
test = 'alexalexalex' v = test.replace('ex','bb',2)#替换原字符串的内容为指定内容,第三参数是只替换前二个 print(v) #结果:albbalbbalex
-lower和upper:将字符串改为大写或小写形式
以及其他字符串方法:
—capitalize
test = "alex" #首字母大写 v = test.capitalize() print(v) #结果:Alex
—casefold和lower
test = "aLex" #所有的变小写,casefold更牛逼,很多未知转变为对应的小写 v1 = test.casefold() print(v1) v2 = test.lower() print(v2) #结果:alex # Alex
-center
test = "aLex" v = test.center(20,"*") #设置宽度,并将内容居中 #20,代表长度 #空白位置填充,一个字符,可有可无 print(v) #结果:********aLex********
-count
#从字符串中寻找,寻找子序列出现次数 test = "aLexalexr" v = test.count('ex') print(v) #结果:2
test = "aLexalexr" v = test.count('ex',5,6)#从第5个开始,第六个结束 print(v) #结果:0
-endswitch
-startswitch
test = "alex" v = test.endswith("x") v1 = test.startswith("a") print(v) print(v1) #结果:True # True
-format
#格式化,将一个字符串中的占位符替换为指定的值 test = "i am {name} age {a}" print(test) v = test.format(name = "alex",a = 19) print(v) “”“结果:i am {name} age {a} i am alex age 19”“”
1 #格式化,将一个字符串中的占位符替换为指定的值 2 test = "i am {0} age {1}" 3 print(test) 4 v = test.format("alex", 19) 5 print(v) 6 #结果:i am {0} age {1} 7 i am alex age 19 8 9 test = "i am {name} age {a}" 10 v1 = test.format(name = "alex",a = 19) 11 v2 = test.format_map({"name":"alex","a":18}) 12 #一定是({"name":"alex","a":18}) 13 print(v1) 14 print(v2) 15 #结果:i am alex age 19 16 i am alex age 18
-index#index找不到,自动报错,一般使用find,没有返回值为-1
test = "alexAlex" v = test.index("ex") print(v) #结果:2
test = "alexAlex" v = test.index("8") print(v) #结果:直接报错 #ValueError: substring not found
-isalnum #判断只能是由数字、字母组成的字符串,是返回True,错误返回false
test = "u789_+" v = test.isalnum() print(v) #结果:False test = "u789" v = test.isalnum() print(v) #结果:True
test = "username\temail\tpassword\nlaiying\[email protected]\t147\nlaiying\[email protected]\t147\nlaiying\[email protected]\t147\n" v = test.expandtabs(20)#以20的字符为准,遇到\t制表符则不全20个字符 print(v) ''' 结果: username email password laiying [email protected] 147 laiying [email protected] 147 laiying [email protected] 147 '''
-isalpha#判断字符串是否全是由字母、汉字组成
test = 'ada2ssd' v =test.isalpha()# print(v) #结果:False
-数字的判定
test = "②" v1 = test.isdecimal()# v2 = test.isdigit() v3 = test.isnumeric() print(v1,v2,v3) #结果:False True True test = "二" v1 = test.isdecimal()#十进制的数字 v2 = test.isdigit()#包含特殊数字的符号和十进制的数字 v3 = test.isnumeric()#不仅包含数字,特殊符号的数字、中文的数字 print(v1,v2,v3) #结果:False False True
-isidentifier
test = "_131" v = test.isidentifier()#是否符合变量的命名规则,由:字母,数字,_组成 print(v) #结果:True
-islower#是否全是小写组成
test ='efas123fads' v = test.islower() print(v) #结果:False
-isprintable
test = "sdfaf\ndadsda"#包含\n 换行符 \t制表符 v = test.isprintable()#isprintable判断是否有不可显示的字符 print(v) #结果:False
-isspace#判断字符串是否全部为空格,返回真
test = 'jknsdf kamn' v =test.isspace() print(v) #结果:False test = ' ' v =test.isspace() print(v) #结果:True
-istitle
test = 'Return True if S is a titlecased string and there is at least one' #判断标题,每个单词首字母都是大写,则是标题 v = test.istitle() print(v) #结果:False
-title
test = 'Return True if S is a titlecased string and there is at least one' #判断标题,每个单词首字母都是大写,则是标题 v = test.title()#将字符串调整为标题格式 print(v) #结果:Return True If S Is A Titlecased String And There Is At Least One test = 'Return True if S is a titlecased string and there is at least one' #判断标题,每个单词首字母都是大写,则是标题 v1 = test.istitle() print(v1) v2 = test.title()#将字符串调整为标题格式 print(v2) v3 = v2.istitle() print(v3) #结果: # False #Return True If S Is A Titlecased String And There Is At Least One #True
-isupper upper
test = 'AlEx' v1 =test.isupper()#是否字符串全是大写 print(v1) v2 = test.upper()#将字符串改为全是大写 print(v2) v3 = v2.isupper() print(v3) #结果: #False #ALEX #True
-lstrip rstrip strip#去除空白,\n \t 和指定参数
test = ' alex dd' v1 = test.lstrip()#删除左边的空格 v2 = test.rstrip()#删除右边的空格 v3 = test.strip()#删除左右两边的空壳 print(v1) print(v2) print(v3) #结果alex dd #alex dd #alex dd
-makestrans translate
v = 'dkmksaasdnfkansasdugjijdasdssssd' m =str.maketrans('asd','123')#创建对应关系 new_v = v.translate(m)#进行替换 print(v) print(new_v) #结果: #dkmksaasdnfkansasdugjijdasdssssd #3kmk21123nfk1n2123ugjij312322223
-partition#分隔是包含分隔元素
test ="testsdhjnsgdkjnadsmdkasff" v = test.partition("s")#找到第一个s进行分隔 print(v) #结果:('te', 's', 'tsdhjnsgdkjnadsmdkasff
-rpartition
test ="testsdhjnsgdkjnadsmdkasff" v = test.rpartition('s') print(v) 结果:('testsdhjnsgdkjnadsmdka', 's', 'ff')
-splitlines
test = "ksmkdmak\njsnjan\nnfjanjs" v = test.splitlines()#只根据换行符进行分隔 print(v) #结果:['ksmkdmak', 'jsnjan', 'nfjanjs'] test = "ksmkdmak\njsnjan\nnfjanjs" v = test.splitlines(True)#只根据换行符进行分隔,True,False是否显示保留换行符 print(v) #结果:['ksmkdmak\n', 'jsnjan\n', 'nfjanjs'] #参数为False为默认值
-startswitch#是否以某个字符串开头
test = "backend 1.1.1.1" v = test.startswith('ba')#字符串是否以ba开头 print(v) #结果:True
-endswitch
test = "backend 1.1.1.1" v = test.endswith('1') #是否字符串以1为结尾 print(v) 结尾:True
-swapcase
test = "AlEx" v = test.swapcase()#大小写装换 print(v) #结果:aLeX