首页 > 编程知识 正文

bytes数组,bytearray函数

时间:2023-05-04 03:51:38 阅读:239198 作者:2392

bytes为不可变的字节序列
bytearray为可变的字节序列,可以称为字节数组
与字符串的区别时字符串时字符组成的有序序列,字符可以使用编码来理解
编码:字符串按照不同的字符集编码encode返回字节序列bytes
例:str.encode(encoding=’utf-8’,errors=’strict’)=>bytes
解码:字节序列按照不同的字符集解码decode返回字符串
例: bytes.decode(encoding=’utf-8’,errors=’strict’)
bytearray.decode(encoding=’utf-8’,errors=’strict’)
1、bytes和bytearray的定义
bytes()定义一个空bytes,一般情况下没有什么用
bytes(int)指定字节的bytes,被0填充。定义长度
bytes(iterable of ints)定义内容,如bytes(range(5))iterable为整型序列,否则报错
bytes(bytes or buffer)将bytes或buffer转换为bytes
bytes(string,encoding[,errors])要指定encoding,如:
bytes(‘abc’,‘utf-8’)encoding为utf-8
或者:bytes(b’abc’)b默认encoding为utf-8
2、 bytes的操作
bytes的操作和str相似,区别是bytes方法输入输出都是bytes
(1)replace替换
b’abcdef’.replace(b’f’,b’k’)将f替换成k,返回一个bytes
(2)find查找
b’abc’.find(b’b’)查找b,返回位置索引
(3)类方法:bytes.fromhex(string)
string为2个字符的16进制形式,如’6162 6a 6b00’空格被自动删除
(4)hex()返回16进制表示的字符串
‘abc’.encode().hex() => ’x61x62x63’
(5)索引
b’abcdef’[2] => 99返回对应的10进制数
3、bytearray操作
普通和bytes类型部分用法相同,但是bytearray为可变序列,因此可以进行可变序列的增删改操作:
appende(int) :增加操作,提供一个int型常量,根据ASCII码转换为对应的bytes。
insert(index,int):插入,与append一样,提供int
extend(iterable_of_ints):追加iterable,iterable内部为int
pop(index=-1):通过索引删除
remove(value)通过值删除
clear():清空
reverse():转置
4、bytearray与int互换
int.from_bytes(bytes,byteorder):将一个字节数组转换成整数

int.to_bytes(length,byteorder):将一个整数表达成一个指定长度的字节数组因此可以完成对字符串到整型的转换,其过程为s = ‘abc’B = s.decode()i = int.frome_bytes(B)print(hex(i))最终输出结果为字符串‘abc’对应ASCII码的16进制表示

5、unicode 和utf-8、utf-1简介
最初由ASCII码规定了字符编码
在国内由于无法表示汉字,因此对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。
汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。
我国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。
每个国家都把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。
后来 ISO 的组织创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。
UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。
因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是使用汉字,用 GBK 等编码也可以。
6、

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。