编码
UTF-9、UTF-16、GB2312、GBK、CP936、base64
代码实现编解码
默认UTF-8编码格式
# 编码
bianMa='吴戬'.encode('utf8')
print(bianMa) #b'\xe5\x90\xb4\xe6\x88\xac'
# 解码
jieMa=bianMa.decode('utf8')
print(jieMa) #吴戬
#注意
zhuYi='学习使我快乐'.encode('GBK').decode('utf-8') #编码和解码不同
报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 6: invalid continuation byte
字符串常用函数
len('123') #3 中文一样
# 返回下标
str1='aaabcdss'
# index 没有则报错
print(str1.index('c')) #从左往右 4
print(str1.rfind('c')) #从左往右 4
print(str1.find('b')) #从右往左 3
print(str1.find('w')) #没有 -1
print(str1.count('a')) #查看a的个数
#分割 还有rsplit(),rpartition()
str2='1 2 3 4ssd s-s-sf'
print(str2.split(' ')) #分隔符 ['1', '2', '3', '4ssd', 's-s-sf']
print(str2.rpartition('4ssd')) #分三段 分隔符 前 后 ('1 2 3 ', '4ssd', ' s-s-sf')
#拼接
array2=['sdfsd','sdfs','sdfsd']
print('.'.join(array2)) #sdfsd.sdfs.sdfsd 将.作为分隔符,什么点就是以什么为分隔符
#大小写
str3='what Are you doing'
print(str3.lower()) #转小 what are you doing
print(str3.upper()) #转大 WHAT ARE YOU DOING
print(str3.capitalize())# 字符串首字母大写 What are you doing 其余小写
print(str3.title()) #每个单词的首字母大写 What Are You Doing
print(str3.swapcase())#大小写互换 WHAT aRE YOU DOING
#替换
str4='aaabaabaa'
print(str4.replace('a','b')) #b替换a bbbbbbbbb 常用来把不好的语言替换为*****
#替换表
table=''.maketrans('abcdefghijklmn@','ABCDEFGHIJKLMN*') #一一对应
text='aceglohl@@'.translate(table) #ACEGLoHL** 只替换替换表中有的
print(text)
#删除字符
str5=' ssa fc '
print(str5.strip()) #删除两边空白
str6='ssvsxsdvvss'
print(str6.strip('s')) #删除两边的s
print(str6.lstrip('s'))#删除左边的s
print(str6.rstrip('s'))#删除右边的s
#还有很多 eval,startswith(),endswith(),center,ljust等就不举例了
其他
字符串属于不可变序列`
str='12334'
str[1]='4'
TypeError: 'str' object does not support item assignment
常用的格式字符
x=100 #默认十进制
print('%o' % x) #八进制 144
print('%s' % [1,2,3]) #对象转字符串
其他的一律这么用
format格式化
print('{0:,}的十六进制是{0:#x},{1}的八进制是{1:#o}'.format(22222,222))
names=[('吴戬','123'),('张三','456'),('李四','332')]
formatter="'{0[0]}'的编号是'{0[1]}'".format
for item in map(formatter,names):
print(item)