python字符串

编码
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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值