Python内置函数bytes()

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

返回一个根据参数 source 生成的字节数组(bytes)对象,数组里的元素不可修改,并且元素的取值范围为 [0, 255]。

函数 bytes()bytearray() 的区别只是数组里的元素是否可以修改,而关于使用方法这些都是相同的,包括参数的定义方式及参数的意义也是相同的(参数定义说明请查看 bytearray() 函数:http://www.jianshu.com/p/4a0deb8cf340)。

示例

>>> ii=bytes('abc', 'utf-8')
>>> ii
b'abc'
>>> ii[0]
97
>>> ii[1]
98
>>> ii[2]
99

>>> uu=bytes('中文汉字', 'utf-8')
>>> uu
b'\xe4\xb8\xad\xe6\x96\x87\xe6\xb1\x89\xe5\xad\x97'
>>> uu[0]
228
>>> uu[1]
184
>>> uu[2]
173

bytearraybytes 不一样的地方在于 bytearray 是可变的:

>>> ii='人生苦短,我用Python!'
>>> bb=bytearray(ii, 'utf-8')
>>> bb
bytearray(b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')
>>> bb.decode()
'人生苦短,我用Python!'
>>> bb[:12]=bytearray('生命短暂', 'utf-8')
>>> bb
bytearray(b'\xe7\x94\x9f\xe5\x91\xbd\xe7\x9f\xad\xe6\x9a\x82\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')
>>> bb.decode()
'生命短暂,我用Python!'
>>>

# 试图修改 bytes 返回的数组对象,提示错误:TypeError: 'bytes' object does not support item assignment
>>> ii
'人生苦短,我用Python!'
>>> uu=bytes(ii, 'utf-8')
>>> uu
b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'
>>> uu.decode()
'人生苦短,我用Python!'
>>> uu[:12]=bytes('生命短暂','utf-8')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'bytes' object does not support item assignment

你可能感兴趣的:(Python内置函数bytes())