如何在Python中将007898989转换为7898989

时间:2016-09-07 13:26:28

标签: python

我正在尝试使用以下代码在Python中将007898989转换为7898989

long(007898989)

然而,这会导致以下错误:

>>> long(007898989)
  File "<stdin>", line 1
    long(007898989)
                 ^
SyntaxError: invalid token

如何正确转换此数字?

2 个答案:

答案 0 :(得分:4)

确实,这样做:

a = 007898989

会引发错误SyntaxError: invalid token,转换为long的最简单方法是:

在Python 2上

a = long("007898989")
print a

在python 3上尝试这个演员会给NameError: name 'long' is not defined,所以,我会说最好的解决方案是下面的

在python 2/3

a = int("007898989")
print(a)

答案 1 :(得分:0)

007898989在Python中不是有效数字,因为以0开头的数字应该是八进制数,并且不能包含8或9.例如077八进制是相同的小数63。在Python 2中,您可以编写以下代码:

>>> 077
63

如果处理不当,这可能会引发一些严重的错误。因此,对于Python 3,不再允许带有前导零的数字:

>>> 077
  File "<stdin>", line 1
    077
      ^
SyntaxError: invalid token

幸运的是,您可以使用以下语法轻松地将Python 2中前导0的数字字符串转换为长整数:

long('007898989', base = 10)
long('007898989') # Since base defaults to 10 anyway

对于Python 3 int已经具有无限精度,因此不再支持long。对于Python 3,您只需使用:

int('007898989')