我正在尝试使用以下代码在Python中将007898989
转换为7898989
:
long(007898989)
然而,这会导致以下错误:
>>> long(007898989)
File "<stdin>", line 1
long(007898989)
^
SyntaxError: invalid token
如何正确转换此数字?
答案 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')