20201224 字符串常用操作

1-1
name = "alex"

print(name.capitalize())

# 所有有下划线的 比如 __ge__ 我们不用管,它们是内部的,是我们不能用的
1-2
name = "my name is alex"
print(name.count("a"))
1-3
name = "my name is alex"
print(name.center(50,"-"))
1-4
encode 在Python3 中 将一个字符串 转换成 二进制
name = "my name is alex"
print(name.encode(self,encoding,errors))
1-5
# endswith 以……结尾  判断字符串 以什么结尾,一致则返回 True
name = "my name is alex"
print(name.endswith("ex"))
# 比如想看一个邮件,是不是以 .com 结尾
1-6
name = "my 	name is alex"
print(name.expandtabs(tabsize=30))
-→ my                            name is alex
1-7
name = "my name is alex"
print(name.find("y"))
-→ 1
# 取出找到的对应字符的索引
name = "my 	name 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())
--> False
print('ab23'.isalnum())
--> True
包含数字和英文可以,有特殊字符不行
1-11 isalpha 纯英文字符
print('ab23'.isalpha())
--> False
print('abK'.isalpha())
--> True
1-12 isdecimal 是否为十进制
print('12222'.isdecimal())

1-13 isdigit 是否为整数
1-14 isidentifier  标识符
print('1A'.isidentifier())  # 判断是不是一个合法的标识符,其实就是相当于判断是不是一个合法的变量名
--> False
print('a1A'.isidentifier())
--> True
print('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())  --> False
print('My Name Is  '.istitle())  --> True

1-18 isprintable() 判断是否可以打印的
Linux 上的 tty drive file 文件是不能打印的,就会返回 False 用途较少

1-19 isupper 大写
1-20 join
print('My Name Is '.join("=="))?
join的玩法
print('+'.join(['1','2','3'])) --> 1+2+3
python3 中 不支持数字,只能通过字符串连接

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} old

1-23 lower() 大写变小写
     upper() 小写变大写
print('Alex'.lower())  --> alex
print('Alex'.upper())  --> ALEX

1-24 lstrip()  默认去掉两边的空格和回车  
     lstrip 就是从左边去掉空格和回车
print('Alex
'.lstrip())
print('----')

 表示换行
print('
Alex'.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'))
5
In [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
+3+4'.splitlines())   
['1+2', '+3+4']
与
>>> print('1+2
+3+4'.split('
'))
['1+2', '+3+4']
是完全一样的效果

1-32 swapcase() 交换大小写
>>> print('Alex Li'.swapcase())
aLEX lI

1-33 title()
>>> print('lex Li'.title())
Lex Li

1-34 zfill()  可以用于补位
>>> print('lex li'.zfill(50))
00000000000000000000000000000000000000000000lex li
原文地址:https://www.cnblogs.com/azxsdcv/p/14183819.html