字符串及其常用魔法方法

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']
posted @ 2020-08-04 22:52  呱呱、、  阅读(276)  评论(0编辑  收藏  举报