python3.x的字符串

首先了解一下字符集:
*最初的ASCII标准在美国创建,只包含了0~127个字符的字符代码,后来的Latin-1字符集,充分利用了8位的空间,添加了一些特殊字符,此时就有了128~255这些特殊字符代码,上面两个字符集中每个字符只占据了一个字节(八位),但是像在亚洲等其他地区的字符一个字节可表示不了一个字符,所以出现了称为“宽字符”的概念,如Unicode字符集,它可为一个字符表示一个字节也可以是多个字节,如编码方式UTF-8采用的就是可变字节的方式。
包含关系是:ascii是latin-1的子集,latin-1又是Unicode的子集,其中Unicode包含多种编码方式,如UTF-8等。*

一、在python3.x中字符串对象有三类:str, bytes, bytearray
其中str表示Unicode文本(8位或更宽的),bytes表示不可变的二进制数据, bytearray表示可变的二进制数据

二、str对象很简单,除了二进制数据,其它的字符串都是str类型。而bytes和bytearray则表示图片,视频或音频的二进制数据,他们实际上都是一个小整数的集合,两个最大的区别在于后者可在原地修改!

三、原则上三个字符串类型转换函数:str(s,encoding), bytes(s, encoding), bytearray(s, encoding)中的参数,除了要转换的文本外,还要有对应的编码方式,除了可以用函数进行相互转换外,还有字符串方法encode和decode方法可以进行两个类型的转换,两个方法都接受一个编码方式作为参数。

四、三种字符串类型都有普通字符串的几乎所有操作,如序列操作,字符串方法etc,但是bytes对象和bytearray对象没有字符串格式化操作,要特别注意。对bytes字符串进行索引时返回的是一个int,表示他的字符代码

五、三种类型的对象中str和bytes(bytearray)不可以混合使用

总结一下:

  • 对文本数据使用str
  • 对二进制数据使用bytes
  • 对需要原地修改的二进制数据使用bytearray
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值