从0开始的数字上的int()是做什么的?

时间:2016-02-25 20:39:17

标签: python-2.7 int

以下两行将打印出12:

  

print int(12)
  print int(“012”)

为什么以下打印10?

  

print int(012)

1 个答案:

答案 0 :(得分:4)

它是一个octal (base 8)数字文字,Python 2本身支持(虽然容易引起混淆)以及十六进制(例如0x1C)。但是,默认情况下,所有数字都是打印的十进制数,因此您将获得返回给您的该整数的十进制(基数为10)版本:

(1 * 8) + (2 * 1) = 10

Python 2输出

$ python2 -c "print 012"
10

Python 3

Python 3 this has changed注意:

$ python3 -c "print(010)"
  File "<string>", line 1
    print(010)
            ^
SyntaxError: invalid token