当我在 Python 中打印这样的程序时:
x = b'francis'
输出是b'francis'
。如果字节在0
's and 1
为什么它不打印出来?
你似乎从根本上感到困惑,以一种非常常见的方式。数据本身是一个不同的概念表示,即当您尝试时所看到的print
它出来或以其他方式显示它。可能有多种方式来表示相同的数据。这就像我写的那样23
(十进制)或0x17
(十六进制)或0o27
(八进制)或0b10111
(二进制)或twenty-three
(英语),我是谈论同一个数字.
在 Python 以下的某个较低级别,一切是字节,每个字节由位组成;但它是not正确地说字节“在”0
s and 1
s - 就像说数字二十三“是”十进制数字(或十六进制、八进制或二进制数字,或英文文本字符)是不正确的。
符号0
and 1
只是我们在屏幕上绘制的图片来表示这些位的状态 - 如果我们选择单独表示它们的话。有时,我们选择更大的分组,并为不同的状态组合分配不同的符号。例如,我们可以将多个位解释为二进制的单个整数值;或者(使用 Unicode)我们可以进一步将该数字解释为“代码点”(其中大多数是文本字符;一些是控制字符或文本字符的一部分)。
一条蟒蛇bytes
对象是“原始”字节序列的包装器。当你显示它时,Python使用一种表示形式,其中每个字节(8位的分组)对应一个或多个符号:对应整数值在三十二到一百二十六(含)之间的字节是(由于历史原因)使用单独的文本字符(遵循所谓的 ASCII 编码)表示,而其他则使用以以下开头的四字符“转义序列”表示\x
后面是数字的十六进制表示形式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)