资讯专栏INFORMATION COLUMN

Python 标准数据类型:Bytes

Yi_Zhi_Yu / 2849人阅读

摘要:对象是由单个字节作为基本元素位,取值范围组成的序列,为不可变对象。对于实例,如果需要还原成相应的字符串,则需要借助内置的解码函数,借助相应的编码格式解码为正常字符串对象,如果采用错误的编码格式解码,则有可能发生错误

Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。

Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。我们可以通过调用 bytes() 类(没错,它是类,不是函数)生成 bytes 实例,其值形式为 b"xxxxx",其中 "xxxxx" 为一至多个转义的十六进制字符串(单个 x 的形式为:xHH,其中 x 为小写的十六进制转义字符,HH 为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围 0-255),对于同一个字符串如果采用不同的编码方式生成 bytes 对象,就会形成不同的值:

比如上例中的 a 字符串对象,其十进制 unicode 值为 24464,分别使用 "utf-8" 和 "gb2312" 两种编码格式将其转换成 bytes 对象 b 和 c ,结果 b 和 c 的值是完全不同的,由于基于的编码格式不一致, b c 长度甚至都不相同,前者有 3 个字节长度,后者有 2 个字节长度:

另外,对于 ASCII 字符串,可以直接使用 b"xxxx" 赋值创建 bytes 实例,但对于非 ASCII 编码的字符则不能通过这种方式创建 bytes 实例:

由于 bytes 是序列,因此我们可以通过索引或切片访问它的元素:

可以发现如果以单个索引的形式访问元素,其会直接返回单个字节的十进制整数,而以序列片段的形式访问时,则返回相应的十六进制字符序列。

对于 bytes 实例,如果需要还原成相应的字符串,则需要借助内置的解码函数 decode(),借助相应的编码格式解码为正常字符串对象,如果采用错误的编码格式解码,则有可能发生错误:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37748.html

相关文章

  • 史上最全的 Python 3 类型转换指南

    摘要:支持转换为类型的,仅有,其他类型均不支持。如果中含有正负号数字和小数点以外的字符,则不支持转换。转换时,会自动添加虚数部分并以表示。转换会直接完全转换。转换列表,会取每个字节的十进制值并组合成列表转换为比较简单。 int 支持转换为 int 类型的,仅有 float、str、bytes,其他类型均不支持。 float -> int 会去掉小数点及后面的数值,仅保留整数部分。 int(-...

    libxd 评论0 收藏0
  • Python标准库---13、内置类型:二进制序列类型 ( bytes, bytearray)

    摘要:上一篇文章标准库内置类型文本序列类型下一篇文章二进制序列类型操作二进制数据的核心内置类型是和。另请参见内置类型。存在一个反向转换函数,可以将对象转换为对应的十六进制表示。返回子序列在范围内非重叠出现的次数。 上一篇文章:Python标准库---12、内置类型:文本序列类型(str)下一篇文章: 二进制序列类型 --- bytes, bytearray, memoryview 操作二进制...

    gekylin 评论0 收藏0
  • Python标准库---14、内置类型:二进制序列类型 (memoryview)

    摘要:对于更高的维度,其长度等于表示的嵌套列表的长度。这是数组在连续表示时将会占用的空间总字节数。该值仅作为参考信息。新版功能一个表明内存是否为的布尔值。新版功能上一篇文章标准库内置类型二进制序列类型下一篇文章标准库内置类型集合类型映射类型 上一篇文章:Python标准库---13、内置类型:二进制序列类型 ( bytes, bytearray)下一篇文章:Python标准库---15、内置...

    yacheng 评论0 收藏0
  • unicode之痛【精校版】

    摘要:之痛原文地址译者校正实用编程指南这是我在所做的演讲。事实一和二共同造成了计算机设备结构与世界人类需求的一个冲突。就是为了解决之前的老的字符集问题。值意味着,失败时将会返回一个标准的替代字符。将使用进行了解码。 Unicode之痛原文地址: http://nedbatchelder.com/text...译者: yudun1989 校正: sicklife实用Unicode编程指南这是...

    zombieda 评论0 收藏0
  • Python标准库---10、内置类型:数字类型

    摘要:上一篇文章标准库内置类型逻辑值检测布尔运算比较下一篇文章标准库内置类型迭代器类型序列类型数字类型存在三种不同的数字类型整数浮点数和复数。标准库包含附加的数字类型,如表示有理数的以及以用户定制精度表示浮点数的。 上一篇文章:Python标准库---9、内置类型:逻辑值检测、布尔运算、比较下一篇文章:Python标准库---11、内置类型:迭代器类型、序列类型 数字类型 --- int,...

    NotFound 评论0 收藏0

发表评论

0条评论

Yi_Zhi_Yu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<