1- bytes
b'C' b'\x01' b'\x010203' b'hello'
>>> a = b'\x01'
>>> type(a)
>>> a = b'C'
>>> type(a)
>>> a = b'\x010203'
>>> type(a)
>>> len(a)
5
>>> a = bytes()
>>> a
b''
>>> type(a)
>>>
>>>
>>> a = b'hello'
>>> type(a)
>>> a
b'hello'
Python3 bytes 函数

描述

bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。

语法

以下是 bytes 的语法:

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

参数

如果 source 为整数,则返回一个长度为 source 的初始化数组;bytes(int)指定字节的bytes,被0填充

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

2-bytearray
>>> a = bytearray((1,2,4,5))
>>> type(a)
>>> a
bytearray(b'\x01\x02\x04\x05')

描述

bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

语法

bytearray()方法语法:

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

参数

如果 source 为整数,则返回一个长度为 source 的初始化数组;

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

3-str与bytes之间的转换

# bytes object
b = b"example"
# str object
s = "example"
# str to bytes
s2b = bytes(s, encoding = "utf8")
# bytes to str
b2s = str(b, encoding = "utf8")
# an alternative method
# str to bytes
s2b2 = str.encode(s)
# bytes to str
bs2 = bytes.decode(b)
4-bytes、bytearray

Python3引入两个新类型:

bytes:不可变类型

bytearrayy:字节数组,可变

bytes操作

除了格式化方法(format和format_map)和几个处理unicode数据的方法(包括casefold、idecimal、isdentifier、isnumeric、isprintable和encode)之外,str类型的其他方法都支持bytes和bytearray

类方法bytes.fromhex(string)

string必须是2个字符的16进制形式,“61 62 6a 6b”,空格将被忽略

In [8]: a=bytes.fromhex("61 62 63 6a 6b")

In [9]: a

Out[9]: b'abcjk'

hex()和上面相反

返回进制的字符串

In [10]: b="abc".encode().hex()

In [11]: b

Out[11]: '616263

int.from_bytes(bytes, byteorder)

bytes类型转换为十进制整数int类型

In [6]: a = int.from_bytes(b"abc", "big")

In [7]: hex(a)

Out[7]: '0x616263'

索引,返回一个int类型数

In [12]: b"abcd"[1]

Out[12]: 98

bytearray操作

和bytes类型的方法相同

In [9]: bytearray(b"abcdefk").replace(b"f",b"m")

Out[9]: bytearray(b'abcdemk')

In [10]: bytearray(b"abcdefk").find(b"a")

Out[10]: 0

类方法

bytearray.fromhex(string)

string必须是2个字符的16进制形式

In [11]: bytearray.fromhex("61 62 6364 65")

Out[11]: bytearray(b'abcde')

hex()上面的相反

In [12]: bytearray("abc".encode()).hex()

Out[12]: '616263'

索引

In [13]: bytearray(b"abcde")[1]
Out[13]: 98
append(int)尾部追加一个元素
In [14]: b=bytearray()
In [15]: b.append(97)
In [16]: b
Out[16]: bytearray(b'a')
insert(index,int)在指定位置插入元素
In [17]: b.insert(1,99)
In [18]: b
Out[18]: bytearray(b'ac')
extend(iyterable_of_ints)将一个可迭代的整数集合追加到当前的bytearray
In [19]: b.extend([65,66,67])
In [20]: b
Out[20]: bytearray(b'acABC')
pop(index= -1)从指定的索引上一处元素,默认从尾部移除,返回移除的值的int类型
In [21]: b.pop()
Out[21]: 67
remove(value),找到第一个value移除,找不到抛异常
clear()清空bytearray
In [29]: b
Out[29]: bytearray(b'acA')
In [30]: b.clear()
In [31]: b
Out[31]: bytearray(b'')
reverse()就地翻转
In [27]: b
Out[27]: bytearray(b'Aca')
In [28]: b.reverse()
In [29]: b
Out[29]: bytearray(b'acA')
5-int byte
use python3 package struct

希望与广大网友互动??

点此进行留言吧!