您的位置:首页 > 其它

20201224 字符串常用操作

2021-04-16 23:40 120 查看
1-1name = "alex"print(name.capitalize())# 所有有下划线的 比如 __ge__ 我们不用管,它们是内部的,是我们不能用的
1-2name = "my name is alex"print(name.count("a"))
1-3name = "my name is alex"print(name.center(50,"-"))
1-4encode 在Python3 中 将一个字符串 转换成 二进制
name = "my name is alex"print(name.encode(self,encoding,errors))
1-5# endswith 以……结尾  判断字符串 以什么结尾,一致则返回 Truename = "my name is alex"print(name.endswith("ex"))# 比如想看一个邮件,是不是以 .com 结尾
1-6name = "my \tname is alex"print(name.expandtabs(tabsize=30))-→ my                            name is alex
1-7name = "my name is alex"print(name.find("y"))-→ 1# 取出找到的对应字符的索引name = "my \tname is alex"print(name.find("name"))-→ 4   为什么返回 4 ? 因为字符串 也可以切片print(name[name.find("name"):9])-→ name 
print(name[name.find("name"):])--> name is alex
字符串也可以切片,用法和列表是一样的
1-8 format 格式化
name = "my name is {name} and i am {year} old"print(name.format(name='alex',year=23))--> my name is alex and i am 23 old
1-9 format_map 
format_map 中的内容为一个字典
name = "my name is {name} and i am {year} old"print(name.format_map({'name':'alex','year':12}))   这是一个字典,这种语法比较少用,知道 format 即可--> my name is alex and i am 12 old
1-10 isalnum 判断是不是阿拉伯数字
name = "my name is alex"print(name.isalnum())--> Falseprint('ab23'.isalnum())--> True
包含数字和英文可以,有特殊字符不行
1-11 isalpha 纯英文字符print('ab23'.isalpha())--> Falseprint('abK'.isalpha())--> True
1-12 isdecimal 是否为十进制print('12222'.isdecimal())1-13 isdigit 是否为整数1-14 isidentifier  标识符print('1A'.isidentifier())  # 判断是不是一个合法的标识符,其实就是相当于判断是不是一个合法的变量名--> Falseprint('a1A'.isidentifier())--> Trueprint('a1A星轨'.isidentifier())--> True        # 中文也可以当变量名,只是千万别这么干
1-15 isnumeric 判断是否为数字,虽然可以用 isdigit;不知道这个存在的目的是什么,忘记它吧print('33'.isnumeric())print('33.33'.isnumeric())1-16 isspace() 判断是否为空格1-17 istitle() 判断每个字母是否为大写print('My name is  '.istitle())  --> Falseprint('My Name Is  '.istitle())  --> True1-18 isprintable() 判断是否可以打印的
Linux 上的 tty drive file 文件是不能打印的,就会返回 False 用途较少1-19 isupper 大写
1-20 joinprint('My Name Is '.join("=="))?
join的玩法print('+'.join(['1','2','3'])) --> 1+2+3python3 中 不支持数字,只能通过字符串连接1-21 ljust() 有两个参数,一个是长度,一个是,,
name = "my name is {name} and i am {year} old"print(name.ljust(50,'*'))--> my name is {name} and i am {year} old*************长度 50;如果不够,用 * 补上1-22 rjust() 刚好相反
name = "my name is {name} and i am {year} old"print(name.rjust(50,'-'))--> -------------my name is {name} and i am {year} old1-23 lower() 大写变小写
     upper() 小写变大写print('Alex'.lower())  --> alexprint('Alex'.upper())  --> ALEX1-24 lstrip()  默认去掉两边的空格和回车  
     lstrip 就是从左边去掉空格和回车print('Alex\n'.lstrip())print('----')
\n 表示换行print('\nAlex'.lstrip())print('----')1-25 rstrip 去掉右边的空格和回车,用法同上1-26 strip  就是去掉两边的,全部都去掉
1-27 maketrans()
p = str.maketrans("abcdef",'123456')print("alex li".translate(p))--> 1l5x li   
是对应的功能,类似于翻译对应的感觉;加密的密码可以这样玩
必须保证数据一样多1-28 replace()  替换  
>>> print('alex li'.replace('l','L',1))
aLex li
只替换了一个,因为后面数字为 1 

1-29 rfind()   从左往右,找到最右边,最后面值的下标并返回 
In [1]: print('alex li'.rfind('l'))5In [2]: print('alex lil'.rfind('l'))7
1-30 split()  把字符串按空格分出列表>>> print('al ex lil'.split(' '))    按空格分
['al', 'ex', 'lil']>>> print('al ex lil'.split('l'))    按字母 “l” 分
['a', ' ex ', 'i', '']
l 没了,因为 l 被当成 分隔符了
如何用呢?比如有一段字符,只想提取数字>>> print('1+2+3+4'.split('+'))
['1', '2', '3', '4']1-31 splitlines() 如果遇到换行,按换行符分,可以自动识别不同系统的换行>>> print('1+2\n+3+4'.splitlines())   
['1+2', '+3+4']
与>>> print('1+2\n+3+4'.split('\n'))
['1+2', '+3+4']
是完全一样的效果1-32 swapcase() 交换大小写>>> print('Alex Li'.swapcase())
aLEX lI1-33 title()>>> print('lex Li'.title())
Lex Li1-34 zfill()  可以用于补位>>> print('lex li'.zfill(50))
00000000000000000000000000000000000000000000lex li

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: