标签:显示 操作方法 declared order ati 转换 man cape 使用
The core built-in types for manipulating binary data are bytes and bytearray. They are supported by memoryview which uses the buffer protocol to access the memory of other binary objects without needing to make a copy.
bytearray objects are a mutable counterpart to bytes objects.
1.使用bytes函数创建bytes
2.直接定义
比如:
? b = b‘abc‘
? b = b‘\x61‘
3.类型转换
bytes函数定义
>>> bytes()
b‘‘
>>> bytes(3)
b‘\x00\x00\x00‘
>>> bytes(range(3))
b‘\x00\x01\x02‘
>>> b = bytes(‘中国‘, encoding=‘utf-8‘)
>>> b
b‘\xe4\xb8\xad\xe5\x9b\xbd‘
>>> bytes(b)
b‘\xe4\xb8\xad\xe5\x9b\xbd‘
直接创建:
>>> b = b‘abc‘
>>> b
b‘abc‘
类型转换:
>>> n = 97
>>> n.to_bytes(1,byteorder=‘big‘)
b‘a‘
>>> s = ‘中国‘
>>> s.encode(encoding = ‘utf-8‘)
b‘\xe4\xb8\xad\xe5\x9b\xbd‘
>>> bytes.fromhex(‘61‘)
b‘a‘
Only ASCII characters are permitted in bytes literals (regardless of the declared source code encoding). Any binary values over 127 must be entered into bytes literals using the appropriate escape sequence.
只有ASCII中的字符串是可以直接在bytes类型中显示出来的,所有大于127的数值用转义字符表达。
比如,内存中的字节对象用十六进制表示为61,在python中显示的方式不是b‘\x61‘ 而是b‘a‘;而b‘\xe4‘显示方式就是b‘\xe4‘;注意:仅仅是显示方式而已
另外,并不是所有的小于127的都可以被友好的显示出来,有些对象本身不可显示,就显示其十六进制表示。比如
b‘\x00‘
bytes类似于string;在方法上,除了自己特有的方法外,跟str也类似。
比如:
>>> b‘abc‘.find(b‘\x63‘)
2
>>> b‘abc‘.replace(b‘\61‘,b‘A‘)
b‘abc‘
bytearray是可变的bytes数据类型,可以通过bytearray创建和定义
一:bytearray()定义
二: bytearray的方法定义
bytearray具备bytes的操作方法,像字符串一样操作;
另外bytearray还具备像list一样的操作方法,比如pop,append等
十六进制和字节类型的相互转换
>>> b = bytes(‘hell‘,encoding=‘utf-8‘)
>>> ba = bytearray(‘hell‘,encoding=‘utf-8‘)
>>> b
b‘hell‘
>>> ba
bytearray(b‘hell‘)
>>> b.hex()
‘68656c6c‘
>>> ba.hex()
‘68656c6c‘
标签:显示 操作方法 declared order ati 转换 man cape 使用
原文地址:https://www.cnblogs.com/dingtianwei/p/9459575.html