字符串的“魔法"
capitalize():首字母大写
test = "aLex"
# 首字母大写
v= test.capitalize()
print(v)
lower():所有字符变为小写
casefold():所有变小写,caseflod更牛逼,很多未知的相对应变小写
#所有变小写,caseflod更牛逼,很多未知的相对应变小写
test = 'ALEX'
v1 =test.casefold()
print(v1)
v2 = test.lower()
print(v2)
center():设置宽度,并将内容居中
# 20代表总长度,没有加填充的符号,默认是空白填充
# * 填充,填充只能是一个字符,且可有可无
test = 'alex'
v1 = test.center(20)
v2 = test.center(20,'*')
print(v1)
print(v2)
#字符串放左边后填充
test1 = 'akda'v1= test1.ljust(20,'*')print(v1)#字符串放右边后填充
test2 = 'sjds'v2= test2.rjust(20,'*')print(v2)
输出:
akda****************
****************sjds
count():去字符串中寻找,寻找子序列的出现次数
#在完整的字符串中寻找,ex出现2次的情况
test = "aLexalex"
v = test.count('ex')
print(v)
#可以设置要寻找字符串的起始位置,结束位置
#下面是从第五个位置开始寻找,顺序是从0开始计算的,aLexal即012345
test = "aLexalexr"
v = test.count('ex',5)
print(v)
#从第5个位置到第6个位置开始寻找,
test = "aLexalexr"
v = test.count('ex',5,6)
print(v)
endswith():#以什么什么结尾startswith():以什么什么开始
test = "alex"
v1 = test.endswith('ex')
v2 = test.startswith('a')
v3 = test.startswith('b')
v4 = test.startswith('q')
print(v1)
print(v2)
print(v3)
print(v4)
find():从开始往后找,找到第一个之后,获取其位置,找不到的时候,报-1
test = 'alexalex'
v = test.find('ex')
print(v)
#指定范围内获取对应位置
test = 'alexalex'
v = test.find('ex',5,8)#位置大于等于5小于8
print(v)
#找不到位置的时候报-1
test = 'alexalex'
v = test.find('8')
print(v)
#index索引,与find类似,index找不到,报错;建议忽略这个index,直接用find查找
test = 'alexalex'
v = test.index('ex')
print(v)
#找不到直接报错
test = 'alexalex'
v = test.index('8')
print(v)
#格式化,将一个字符串中的占位符替换为指定的值
#格式化占位符的两种方式,方式一:
test = 'i am {name},age {a}'
print(test)
v =test.format(name='alex',a = 19)
print(v)
# 方式二:数字从小到大,0开头
test = 'i am {0},age {1}'
print(test)
v =test.format('alex',19)
print(v)
#格式化,传入的值 {'name':'alex','a':19} 是这种格式的
test = 'i am {name},age {a}'
print(test)
v =test.format_map({'name':'alex','a':19})
print(v)
#判断字符串中是否只包含:字母或数字
test = 'uasf890_+'
v = test.isalnum()
print(v)
test = 'uasf890_'
v = test.isalnum()
print(v)
test = 'uasf890'
v = test.isalnum()
print(v)
# \t 制表符 \n 换行
#expandtabs(),断句,遇到制表符时填充空字符,括号内的数值为断句的间隔字符值
test = 'asdzzx\temail\npppppsjjhj\tassss\nvdasdaz'
v1 = test.expandtabs(4)
print(v1)
#是否是字母或汉字:isalpha()
test1 = '123'
v1 = test1.isalpha()
print(v1)
test2 = "abc"
v2 = test2.isalpha()
print(v2)
test3 = '汉字'
v3 = test3.isalpha()
print(v3)
test4 = '汉字ABC'
v4 = test4.isalpha()
print(v4)
#判断当前输入的是否是数字:isdecimal()、isdigit()test5 = '123'v5 = test5.isdecimal()
v6 = test5.isdigit()
print(v5)
print(v6)
#判断特殊数字的情况test6 ='②'v7 =
test6.isdecimal()
v8 = test6.isdigit()
print(v7)
print(v8)
#大小写转换
test7 = 'aLEx'v9=test7.swapcase()print(v9)
#检查是否是字母、数字、下划线 开头a = 'def'b= '1def'c= '_def'v1=a.isidentifier()
v2=b.isidentifier()
v3=c.isidentifier()print(v1,v2,v3)#输出 True False True
#判断是否是数字
test7 ='1'test8= '②'test9= '二'v7= test7.isdecimal()#支持十进制的小数,如1.2.3.4.5
v8 = test8.isdigit()#支持十进制小数,也支持特殊字符的小数,①、②、④等
v9 = test9.isnumeric()#支持十进制消失,也支持特殊字符的小数,还支持中文的数字,如一、二、三等
print(v7,v8,v9)
输出:True True True
#是否存在不可显示的字符,如 \t \n 是打印不出来的#\t 制表符#\n 换行
test1 = 'asfjaibkvb'test2= 'asfaf\tsdadd'test3= 'asdasd\nasdas'v1=test1.isprintable()
v2=test2.isprintable()
v3=test3.isprintable()print(v1,v2,v3)
输出:True False False
#判断是否全部是空格
test1 = ''#没有字符,null
test2 = ' '#一个空格
test3 = 'aksh jfcia'#字符串加空格字符
test4 = ' '#多个空格
v1 =test1.isspace()
v2=test2.isspace()
v3=test3.isspace()
v4=test4.isspace()print(v1,v2,v3,v4)
输出:False True False True
#判断是否是标题#变成标题
test1 = 'Create a new string object from the given object'v1= test1.istitle()#判断是否是标题
print(v1)
v2= test1.title()#转变为标题,标题即每个首字母都是大写
print(v2)
v3=v2.istitle()print(v3)
输出:
False
Create A New String Object From The Given Object
True
#***** :将字符串中的每一个元素按照指定分隔符进行拼接
test = '你是风儿我是沙'
print(test)
t= ' 'v1= t.join(test)#将分隔符通过赋值的方式添加拼接
print(v1)
v2= ' '.join(test)#将分隔符直接添加拼接
print(v2)
v3= '_'.join(test)#分隔符为下划线的情况
print(v3)
输出:
你是风儿我是沙
你 是 风 儿 我 是 沙
你 是 风 儿 我 是 沙
你_是_风_儿_我_是_沙
#判断是否全部是大小写和转换为大小写
test1 = 'Alex'v1=test1.islower()
v2=test1.lower()
v3=v2.islower()
v4=test1.isupper()
v5=test1.upper()
v6=v5.isupper()print(v1,v2,v3,v4,v5,v6)
输出:
False alex True False ALEX True
#剔除
test1 = "alex"v1= test1.lstrip()#剔除左边的空格
print(v1)
左边的空格被剔除,保留右边的空格
test1 = "alex"v1= test1.rstrip()#剔除右边的空格
print(v1)
右边的空格被剔除,保留左边的空格
test1 = "alex"v1= test1.strip()#空白都剔除了
print(v1)
左右两边的空白都剔除了
#除了可以去除空白,还能去除\n和\t
test1 = '\nasds'test2= '\tsdsa'v1=test1.lstrip()
v2=test2.lstrip()print(v1)print(v2)
#指定内容进行去除
test1 = 'asfhias'v1= test1.lstrip('as')print(v1)
输出:fhias
#指定内容进行去除,多匹配的时候
test1 = 'abcdefg'
#从右往左defg在匹配内容中有,进行去除,到c的时候,匹配中不存在,停止去除,输出adebc
v1 = test1.rstrip('defglj')print(v1)
输出:
adebc
#指定字符串对应关系,进行替换,这两个方法通常会组合使用
v = 'asibsdokaskdmankzxocalcbss'm= str.maketrans('abcde','12345')#指定字符串对应关系
new_v = v.translate(m)#替换字符串
print(new_v)
输出:
1si2s4ok1sk4m1nkzxo31l32ss
#分割
test1 = 'adgskjhsdisajlsiv'v1= test1.partition('s')#从左边开始找到第一个 s 进行分割,永远只能把字符串分割成3份,包含分割的元素s
print(v1)
输出:
('adg', 's', 'kjhsdisajlsiv')
#分割
test1 = 'adgskjhsdisajlsiv'v1= test1.rpartition('s')#从右边开始找到第一个 s 进行分割,永远只能把字符串分割成3份
print(v1)
输出:
('adgskjhsdisajl', 's', 'iv')
#split 也是分割,由左往右,不包含分割的元素,如下用法
#rsplit,也是分割,一样的用法,是由右往左
test = 'dfgaskdshjasokfsjac'v1= test.split('s')
v2= test.split('s',1)
v3= test.split('s',2)print(v1)print(v2)print(v3)
输出:
['dfga', 'kd', 'hja', 'okf', 'jac']
['dfga', 'kdshjasokfsjac']
['dfga', 'kd', 'hjasokfsjac']
#splitlines分割,只能根据换行符分割,True,False:是否保留换行
test ='hsdfjba\nikashdi\nbvfide'v1=test.splitlines()
v2=test.splitlines(True)
v3=test.splitlines(False)print(v1)print(v2)print(v3)
输出:
['hsdfjba', 'ikashdi', 'bvfide']
['hsdfjba\n', 'ikashdi\n', 'bvfide']
['hsdfjba', 'ikashdi', 'bvfide']
#startswith:判断以XXX开头#endswith:判断以XXX结尾
test = 'difhias'v1= test.startswith('d')
v2= test.startswith('a')
v3= test.endswith('as')
v4= test.endswith('ad')print(v1)print(v2)print(v3)print(v4)
输出:
True
False
True
False
#swapcase: 大小写转换
test = 'ALex'v=test.swapcase()print(v)
输出:
alEX