1、概念:
bytes为字节序列;而bytearray为可变的字节序列,或称为字节数组;它们都是二进制数据组成的序列,取值范围为0~255。
2、bytearray的定义:
定义一个空bytearray,bytearray():
>>> ba = bytearray()
>>> ba
bytearray(b'')
>>> type(ba)
<class 'bytearray'>
>>>
定义指定长度的字节数组bytearray,默认以0填充,bytearray(int),不能是浮点型:
>>> ba10 = bytearray(10)
>>> ba10
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> sa10 = ba10.decode()
>>> sa10
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>>
定义指定内容的bytearray,bytearray(整型可迭代对象),int整型组成的可迭代对象里的元素,依次取出,放在字节数组的字节中,序列元素不能有非整型,也不能大于255:
>>> b14 = bytearray((1,2,3,4,))
>>> b14
bytearray(b'\x01\x02\x03\x04')
>>> b14 = bytearray([1.1,2.2,3,4])
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
b14 = bytearray([1.1,2.2,3,4])
TypeError: 'float' object cannot be interpreted as an integer
>>> b14 = bytearray([1,'a',2,3])
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
b14 = bytearray([1,'a',2,3])
TypeError: 'str' object cannot be interpreted as an integer
>>>
>>> b14 = bytearray([1,257])
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
b14 = bytearray([1,257])
ValueError: byte must be in range(0, 256)
>>>
bytearray(bytes_or_buffer) -> mutable copy of bytes_or_buffer