在 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如何匹配换行符09/16
- ♥ python类如何实例化对象09/26
- ♥ python如何连接多个迭代器?09/19
- ♥ python如何定义列表08/13
- ♥ python局部变量是什么?与全局变量的区别是什么?09/29
- ♥ python2和python3的本质区别08/11
内容反馈