我正在使用python shell来解决print命令在python中的工作方式。 当我输入
打印01 1 打印010 8 打印0100 64 打印030 24
这里发生了什么?只是基数2?为什么第二个位置的“一个”打印为8?如果不是二进制,应该不是2吗?
以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中使用。