Python的bytearray和bytes
一、bytearray函数简介
【描述】
bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
【语法】
class bytearray([source[, encoding[, errors]]]) |
【参数】
- 如果 source 为整数,则返回一个长度为 source 的初始化数组;
- 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
- 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;(刚好是28,一个字节就是8比特)
- 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
- 如果没有输入任何参数,默认就是初始化数组为0个元素。
【返回值】
返回新字节数组,可变字节序列 bytearray 有一个明显的特征,输出的时候最前面会有一个字符 b 标识。
二、实例
a = bytearray() # 定义空的字节序列bytearray |
输出
bytearray(b'') |
接下来来探究字节序列具体的每个字节的值是多少
b = bytearray(3) # 定义指定个数的字节序列bytes,默认以0填充,不能是浮点数 |
结果如下所示,可以看到每个字节的值就是对应的ASCII码(十进制)
bytearray(b'\x00\x00\x00') |
三、与bytes函数的区别
其他都一样。不同的是bytes为不可变字节序列,可以看作是由一个个byte(二进制0-255数值)组成的str序列。bytearray为可变字节序列,可以看作是一组二进制数值的(0-255)的list序列。举例如下
a = b'w01ke' # bytes类型,不可变字节序列 |
如果换成bytearray类型即可修改内容
a = b'w01ke' # bytes类型,不可变字节序列 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 wolke!
评论