python3中bytes数据类型的具体使用
作者:凌肖战
一. 简介
bytes 类型是 python3 引入的。在Python 3.0版本中,字节串类型(bytes)被引入并命名为bytes,用于表示二进制数据。
在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
二. python3 中的 bytes数据类型
1. 创建 bytes类型
创建 bytes类型有几种方式:
(1) 使用字面量语法创建。
(2) 可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。
下面来简单学习一下 bytes类型的创建,访问与索引,bytes类型与字符串之间的转换。
(1) 使用字面量语法创建。如下所示进行创建:
b = b"hello python"
(2) 使用 byte() 构造函数创建,这里是使用 bytes() 函数将其他类型的对象转换为 bytes 类型。
举例说明:
b1 = bytes([10]) #将数字转化为字节串 b2 = bytes([1, 2, 3]) #将数字列表转化为字节串 b3 = bytes((1, 2, 3)) #将数字元组转化为字节串 b4 = bytes('a', encoding='utf-8') #将单个字符转换为字节串 b5 = bytes("python", encoding='utf-8') #将字符串转换为字节串
通过 byte()方法定义 bytes类型,显示有两种可能:以二进制格式显示,或者以字符串格式显示:
以二进制格式显示
当 bytes的元素值范围在 [32, 126] 范围之外时,会以二进制格式显示,举例说明如下:
b1 = bytes([1, 2, 3, 4, 5]) print(b1) #输出 b'\x01\x02\x03\x04\x05'
以字符串格式显示
bytes的元素值范围在 [32, 126] 范围之外时,会以二进制格式显示,举例说明如下:
b2 = bytes([32, 33, 34, 126]) print(b2) #输出 b' '!'~'
2. bytes的访问与索引
bytes对象是不可变序列,类似于字符串对象。可以通过索引与切片对 bytes对象进行访问或截取。
b = bytes("hello python", 'utf-8') print(b[0]) #输出 104 print(b[2:5]) #输出 b'llo' print(b[2:]) #输出 b'llo python' print(b[:3]) #输出 b'hel'
3. 字节串 bytes与字符串 str的转换
将bytes类型转换为 字符串类型,举例如下:
b = bytes("python", 'utf-8') s = b.decode('utf-8') print(s) #输出 python
将字符串转化为 bytes类型,举例如下:
s = "hello python" b = s.encode('utf-8') print(b) #输出 b'hello python'
4. 修改 bytes对象
bytes 对象是不可变的,不能直接修改其中的元素。若需要修改,可以先将其转换为 bytearray类型,然后再进行修改。下面举例说明:
b1 = bytes("hello world", 'utf-8') b2 = bytearray(b1) b2[0] = 72 print(b2) #输出:bytearray(b'Hello world')
5. 删除 bytes对象
使用 del() 方法删除 bytes对象,例如:
b1 = bytes("hello world", 'utf-8') del b1
关于 byte类型暂时学习到这里。
到此这篇关于python3中bytes数据类型的实现示例的文章就介绍到这了,更多相关python3 bytes数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!