数字的索引二进制类型
Index binary type of a number
b'1'[0]
1的二进制序列,索引时是49,我想不通这是为什么。另外 b'2'[0] 是 50,这些数字的基本二进制序列是什么?
你所拥有的没有“二进制序列”,它是一个 bytes
文字。
>>> type(b'1')
<class 'bytes'>
A bytes
object 是一个不可变的单字节序列,因此该序列中的所有数字都必须在范围 (0, 256) 内。您也可以从数字列表中构造它:
>>> bytes([50, 33])
b'2!'
那么这个 b''
符号到底是什么意思?
嗯,字节序列通常与文本相关。并非总是如此,但经常足以 Python 支持字节对象上的许多字符串方法,如 capitalize
、index
和 split
,以及这种方便的文字语法可以输入文本,并使其等同于与 ASCII 中编码的文本对应的一系列字节。不过,它在幕后仍然是 range(0, 256)
中不可变的数字序列,这就是为什么索引 bytes
对象会给出一个数字。
b'1'[0]
1的二进制序列,索引时是49,我想不通这是为什么。另外 b'2'[0] 是 50,这些数字的基本二进制序列是什么?
你所拥有的没有“二进制序列”,它是一个 bytes
文字。
>>> type(b'1')
<class 'bytes'>
A bytes
object 是一个不可变的单字节序列,因此该序列中的所有数字都必须在范围 (0, 256) 内。您也可以从数字列表中构造它:
>>> bytes([50, 33])
b'2!'
那么这个 b''
符号到底是什么意思?
嗯,字节序列通常与文本相关。并非总是如此,但经常足以 Python 支持字节对象上的许多字符串方法,如 capitalize
、index
和 split
,以及这种方便的文字语法可以输入文本,并使其等同于与 ASCII 中编码的文本对应的一系列字节。不过,它在幕后仍然是 range(0, 256)
中不可变的数字序列,这就是为什么索引 bytes
对象会给出一个数字。