在 Python 3 之后,字符串和字节类型完全分离。字符串以字符为单位处理,字节以字节为单位处理。
bytes 数据类型在所有操作和使用甚至内置方法中都与 string 数据类型基本相同,也是不可变的序列对象。
bytes对象只负责以二进制字节序列的形式记录要记录的对象。至于对象代表什么(比如是什么字符),则由对应编码格式的解码决定。在Python3中,bytes通常用于网络数据传输、二进制图片和文件存储等。调用bytes()可以生成一个bytes实例,其值的形式为b'xxxxx',其中'xxxxx'为一或多个转义的十六进制字符串(单个x的形式为:\x12,其中\x为小写十六进制转义字符序列,12为两位十六进制数),每个十六进制数代表一个字节(八位二进制number,取值范围 0-255),对于同一个字符串,如果使用不同的编码方式生成 bytes 对象,会形成不同的值。
b = b'' # 创建一个空的bytes
b = byte() # 创建一个空的bytes
b = b'hello' # 直接指定这个hello是bytes类型
b = bytes('string',encoding='编码类型') #利用内置bytes方法,将字符串转换为指定编码的bytes
b = str.encode('编码类型') # 利用字符串的encode方法编码成bytes,默认为utf-8类型
bytes.decode('编码类型'):将bytes对象解码成字符串,默认使用utf-8进行解码。
对于字节,我们只需要知道它在Python3中的某些场合是强制的,以及它与字符串类型的转换,其他的基本上是复制字符串。
简单的省事模式:
string = b'xxxxxx'.decode() 直接以默认的utf-8编码解码bytes成string
b = string.encode() 直接以默认的utf-8编码string为bytes
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python的pip有什么用10/04
- ♥ python如何对素数求和?10/02
- ♥ python if语句是什么09/24
- ♥ python中无法使用原始输入的原因11/20
- ♥ 如何区分python中的小数和整数09/24
- ♥ 如何使用python的格式08/20
内容反馈