字符串及其常用魔法方法
1.capitalize() 将首字母变大写
2.casefold() 所有变小写
lower()所有变写
注(casefold()能将各种语言变成小写,lower只能变英文)
3.(1)center(width,fillchar=None) 注(width表示此处必须带上这种东西,fillchar=None表示可带可不带(系统有默认值),带上效果可能不一样)
设置宽度并将内容居中(width=一个数值:此处数值代表总长度,fillchar=一个字符:此处字符代表剩余位置所填充的东西,没有的话则默认填充空格)
(2)ljust(width,fillchar=None) 设置宽度并将内容居左显示
(3)rjust(width,fillchar=None) 设置宽度并将内容居右显示
4.count(sub,start=None,end=None) 在字符串中寻找子序列出现的次数
sub=某个字符:即在字符串中寻找此字符出现的次数;start=数值a:从第a个字符开始找,默认为0;end=b:到第b个字符结束,默认为最后一个
5.encode
6.decode
7.endswith(suffix,start=None,end=None) 表示以哪个字符结尾,返回true或者false。start跟end作用类似4.
test='alex'
v=test.endswith('ex')
print(v)
运行结果为 True
8.startswith(suffix,start=None,end=None) 表示以哪个字符结尾,
9.find(sub,start=None,end=None) sub=字符a,寻找字符a在字符串中的位置,直至找到第一个后停止;start跟end表示寻找的起始位置,其中左边时闭区间,右边是开区间;找
10.format(*args,**kwargs) 格式化,将一个字符串中的占位符替换为指定的值
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
l = ['1','2','3']
'{0[0]},{0[1]},{0[2]}'.format(l)
结果:
'1,2,3'
11.fortmap_map() 功能与10.中的相同,但传入的值不一样(注意代码第三行)
test='i am {name},age={a}'
print(test)
v=test.format_map({'name':'alex','a':19})
print(v)
12.index(sub,start=None,end=None) 与9.(;find)功能相同,不同之处在于,使用index找不到后会报错
13.isallnum() 判断字符串中是否只包含字母和数字,如果是,返回True
14.expandtabs(tabsize) 断句
test='username\tjiaoguohua' v=test.expandtabs(15) print(v) print(test)
运行结果:
username jiaoguohua
username jiaoguohua
15.isalpha() 判断字符串中是否只包含字母和汉字,如果是,返回True
16.isdecimal()、isdigit() 判断字符串中是否只包含数字。其中 isdigit更厉害一些
17.swapcase() 将字符串进行大小写转换
18.isidentifier () 判断字符串是否为有效标识符
19.isprintable() 判断字符串是否存在不可显示的字符,如\t、\n等(\t:制表符;\n:换行)
20.isspace() 判断字符串是否全部都是空格
21.istitle() 判断字符串是否时标题(英文中标题每个单词首字母都大写)
22.title() 将字符串变为标题格式
23.join() 将字符串(可迭代对象即可)中的每一个元素按照指定分隔符进行拼接
test='你是风儿我是沙'
v='_'.join(test)
print(v)
运行结果:你_是_风_儿_我_是_沙
24.(1)islower() 判断字符串是否都是小写
(2)lower() 将字符串内容都变成小写
(3)isupper() 判断字符串是否全为大写
(4)upper() 将字符串内容都变为大写
25.(1)strip() 去除左右两边的空格,或者是换行或者\t(默认),当指定去除内容时,则去除相应的内容,优先最多匹配(有三个能配对则三个一起删)
(2)lstrip() 只去除左边
(3)rstrip() 只去除右边
test='xaexlex'
v=test.rstrip('9lexex')
print(v)
运行结果:xa
运行逻辑:从右往左找,首先'9lexex'存在‘lex’,则在test中删除‘lex’;其次,'9lexex'中存在‘ex’,则继续删除test中的‘ex’;再次,'9lexex'中没有‘a’,则停止。
最终剩下xa。如果在'9lexex'中任意位置加一个a,则test中的所有字母都将被去除
26.(1)maketrans(*args,**kwargs)
(2)translate()
v=('aeiousjignthaeiosdu')
m=str.maketrans('aeiou','12345')
new_v=v.translate(m)
print(new_v)
运行结果:12345sj3gnth1234sd5
作用如代码所示,maketrans()设置对应关系,translate()进行应用
27.replace(old, new, count=None) 替换字符串,默认全部替换,count可是之替换次数
test='alexalexalex'
v=test.replace('le','lu',2)
print(v)
运行结果:aluxaluxalex
28.(1)partition() 从左往右 将字符串在指定位置进行分割,只分割一次
test='alesjghsthsik'
v=test.partition('s')
print(v)
运行结果:('ale', 's', 'jghsthsik')
(2)rpartition()将字符串从右往左进行分割,只分割一次。
test='alesjghsthsik'
v=test.rpartition('s')
print(v)
运行结果:('alesjghsth', 's', 'ik')
(3)split(sep=Nnoe,maxsplit=-1)从左往右将字符串在指定元素位置进行分割指定的次数,默认分割无数次(有几个分割几次),并且去除指定的元素,返回一个列表
test='alesjghsthsik'
v=test.split('s')
print(v)
运行结果:['ale', 'jgh', 'th', 'ik']
test='alesjghsthsik'
v=test.split('s',2)
print(v)
运行结果:['ale', 'jgh', 'thsik']
(4)rsplit()从右往左。。。
(5)splitlines(keepends=None) 在换行处进行分割,true和false来设置是否保留换行符(\n)
test='sdfjksdhfa\nshfjdfsdgfh\nshudhfu\n'
v=test.splitlines()
print(v)
运行结果:['sdfjksdhfa', 'shfjdfsdgfh', 'shudhfu']