Python中的bytes类型

Python中的bytes类型

Python中的bytes类型叫做“字节串”,与“字符串”类型类似,“字节串”是把多个“字节”串在一起。

1 “字节串”的定义

可以通过字符串定义bytes类型的变量,也可以通过bytes()方法定义。

1.1 通过字符串定义

给单引号或者双引号加一个前缀b,表示“字节串”,代码如图1所示。

图1 通过字符串定义

1.2 通过bytes()方法定义

1.2.1 以二进制格式显示

通过bytes()方法定义的代码如图2所示,此时以二进制格式显示bytes变量。

图2 通过bytes()方法定义

1.2.2 以字符串格式显示

当bytes中的元素值在[33, 126]这个区间内时,以元素值对应的字符串格式显示bytes变量,字符串的前缀b表示该类型是bytes,如图3所示。

图3 以字符串格式显示

1.2.3 bytes元素的取值范围

bytes中元素的取值范围是0~255,当超出这个范围时,程序会报错,如图4所示。

图4 元素取值范围

从图4可以看出,报错信息为“bytes类型的元素必须在range(0,256)范围内”。

1.2.4 bytes元素中包含汉字的定义方式

当bytes元组中包含汉字时,无法通过“1.1 通过字符串定义”中提到的方法进行定义,如图5所示。

图5 不能通过字符串加前缀方式定义汉字bytes

可以使用bytes()方法定义,代码如图6所示。

图6 通过bytes方式定义汉字bytes

从图6可以看出,bytes()方法的第一个参数是字符串格式的汉字,第二个参数表示编码方式,即将字符串转换为bytes时的编码方式。

相关链接1 utf-8编码规定用3个字节表示一个汉字;ascii编码规定用1个字节表示一个字符。

图6中可以看出,b4中的有两个用utf-8编码的汉字,所以b4中有6个字节的数据,前三个字节表示汉字“你”,后三个字节表示汉字“好”。

2 访问“字节串”中的元素

可以通过下标或者for循环的方式,访问字节串中的元素,代码如图7所示。

图7 访问字节串中的元素

从图7中可以看出,字节串中单个元素的类型都是整型。

3 字符串与字节串(bytes)的相互转换

3.1 字符串转换为字节串

通过字符串类型的变量调用encode()方法,可以将字符串转化为字节串,如图8所示。

图8 字符串转换为字节串

3.2 字节串转换为字符串

通过bytes类型的变量调用decode()方法,可以将字节串转化为字符串,如图9所示。

图9 字节串转换为字符串

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/133792411
今日推荐