小编典典

二进制数?

python

我正在使用python shell来解决print命令在python中的工作方式。
当我输入

打印01
1
打印010
8
打印0100
64
打印030
24

这里发生了什么?只是基数2?为什么第二个位置的“一个”打印为8?如果不是二进制,应该不是2吗?


阅读 232

收藏
2021-01-20

共1个答案

小编典典

以0开头的数字在Python 2中将其标记为八进制。这被认为是令人困惑,令人惊讶且不一致的,因为以0x开头会将其标记为十六进制。因此,在Python
3中,以0开头无效,并且以0o开头得到八进制。您也可以从0b开始将其标记为二进制。

>>> 10
10
>>> 0x10
16
>>> 0o10
8
>>> 0b10
2
>>> 010
  File "<stdin>", line 1
    010
      ^
SyntaxError: invalid token

0x,0o和0b也可在Python 2.6和Python 2.7中使用。

2021-01-20