类比不适用于08和09

Nil*_*esh 4 python python-2.7

虽然在python中进行类型转换我遇到了错误.

int(01)
int(02)
int(03)
int(04)
int(05)
int(06)
int(07)
Run Code Online (Sandbox Code Playgroud)

最重要的是工作正常.

但是当我为轰鸣声做同样的事情时:

int(08)
Run Code Online (Sandbox Code Playgroud)

int(09)
Run Code Online (Sandbox Code Playgroud)

我收到了错误,即

SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)

我知道,这种类型转换对于将int转换为int是不正确的.

但我只是想知道,当它适用于01至07时,为什么它不适用于08和09?

the*_*eye 11

以0开头的数字被视为八进制数据.八进制数不能超过7.

要解决此问题,您可以将数据转换为字符串并像这样显式传递基数

print int("09", 10)
Run Code Online (Sandbox Code Playgroud)

产量

9
Run Code Online (Sandbox Code Playgroud)