欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

布尔 Python 使用方法 python-1.8 中的 bool 函数使用方法 函数字节数

最编程 2024-06-11 09:35:21
...

在Python程序中,函数bytes()的功能是返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。函数bytes()的语法格式如下所示:

class bytes([source[, encoding[, errors]]])

  1. 如果 source 为整数,则返回一个长度为 source 的初始化数组;
  2. 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
  3. 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
  4. 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray;
  5. 如果没有输入任何参数,默认就是初始化数组为0个元素。

函数bytes()的返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内。函数bytes()和函数bytearray()的具有相同的功能,差别仅仅是返回的字节数组不可修改。例如在下面的实例文件byts.py中,演示了使用函数bytes()处理不同类型数据的过程。

b = bytes()

print(b)

①print(len(b))

②print(bytes('中文','utf-8'))

③print('中文'.encode('utf-8'))

④print(bytes(2))

⑤print(bytes([1,2,3]))

⑥b = bytes(10)

print(b)

print(b[0])

b = bytearray(10)

print(b)

b[1] = 1 #可修改

⑦print(b)

执行后会输出:

b''
0
b'\xe4\xb8\xad\xe6\x96\x87'
b'\xe4\xb8\xad\xe6\x96\x87'
b'\x00\x00'
b'\x01\x02\x03'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
bytearray(b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00')

①当3个参数都不传的时候,返回长度为0的字节数组。

②③当参数source为字符串时,参数encoding也必须提供,函数bytes()使用str.encode()方法将字符串转换成字节数组。如果不设置编码,则执行后会出错,例如下面的代码:

>>> bytes('中文') #需传入编码格式

Traceback (most recent call last):

  File "<pyshell#14>", line 1, in <module>

    bytes('中文')

TypeError: string argument without an encoding

④当参数source为整数时,会返回这个整数所指定长度的空字节数组。这里的数组长度必须是大于零,否则执行后会出错,例如下面的演示代码:

>>> bytes(-2) #整数需大于0,用于做数组长度

Traceback (most recent call last):

  File "<pyshell#19>", line 1, in <module>

    bytes(-2)

ValueError: negative count

⑤当参数source是一个可迭代对象时,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组中。如果不符合0 <= x < 256这一条件,则执行后会出错,例如下面的演示代码:

>>> bytes([256,2,3])

Traceback (most recent call last):

  File "<pyshell#21>", line 1, in <module>

    bytes([256,2,3])

ValueError: bytes must be in range(0, 256)

⑥⑦演示函数bytes()返回数组不可修改的用法,而函数bytearray()则可以修改数组元素值,例如使用代码“b[1] = 1”将其值修改为1。如果在函数bytes()中修改数组元素值,则执行后会出错,例如下面的代码:

>>> b = bytes(10)

>>> b

b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

>>> b[0]

0

>>> b[1] = 1 #不可修改

Traceback (most recent call last):

  File "<pyshell#6>", line 1, in <module>

    b[1] = 1

TypeError: 'bytes' object does not support item assignment