数字的索引二进制类型

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 支持字节对象上的许多字符串方法,如 capitalizeindexsplit,以及这种方便的文字语法可以输入文本,并使其等同于与 ASCII 中编码的文本对应的一系列字节。不过,它在幕后仍然是 range(0, 256) 中不可变的数字序列,这就是为什么索引 bytes 对象会给出一个数字。