Python3新增了bytes类型,用于代表字节串,是字节串不是字符串。
字符串(str)由多个字符组成,以字符为单位进行操作;
字节串(bytes)由多个字节组成,以字节为单位进行操作。
bytes和str 除操作的数据单元不同之外,它们支持的所有方法都基本相同,bytes 也是不可变序列。
bytes 对象只负责以字节(二进制格式)序列来记录数据,至于这些数据到底表示什么内容,完全由程序决定。
如果采用合适的字符集,字符串可以转换成字节串;
反过来,字节串也可以恢复成对应的字符串。
由于bytes保存的就是原始的字节(二进制格式)数据。因此,bytes 对象可用于在网络上传输数据,也可用于存储各种二进制格式的文件,比如图片、音乐等文件。
如果希望将一个字符串转换成bytes对象,有如下三种方式。
1)如果字符串内容都是ASCII字符,则可以通过直接在字符串之前添加b来构建字节串值;
2)调用 bytes()函数(其实是 bytes 的构造方法)将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用UTF-8字符集。
3)调用字符串本身的encode)方法将字符串按指定字符集转换成字节串,如果不指定字符集默认使用UTF-8字符集。
例如,如下程序示范了如何创建字节串。
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024/01
# @Author : Laopi
#创建一个空的bytes
b1 = bytes()
#创建一个空的bytes值
b2 = b''
#通过b前缀制定laopi是bytes类型的值
b3 = b'laopi'
print(b3)
print(b3[0])
print(b3[2:4])
#调用bytes方法将字符串转行成bytes对象
b4 = bytes('软件测试老痞和软件测试划水老师傅,oh yeah',encoding='utf-8')
print(b4)
#利用字符串的enc

本文介绍了Python3中的字节串(bytes)类型,它用于代表字节序列,不同于字符串(str)。bytes对象是不可变序列,支持与str类似的方法。通过b前缀、bytes()函数或encode()方法可将字符串转为字节串。字节串常用于网络传输和存储二进制数据。同时,文章解释了字符集的概念,包括ASCII、Unicode以及UTF-8等。
最低0.47元/天 解锁文章
1696

被折叠的 条评论
为什么被折叠?



