如何将000000000001转化为1?
我需要把一个格式化的整数变成普通的整数:
- 像000000000001这样的数字需要变成1
- 像000000000053这样的数字需要变成53
- 像000000965948这样的数字需要变成965948
还有很多类似的情况。
我发现直接用int(000000000015)
会得到13,这让我觉得背后有些奇怪的东西在作怪。那么,有什么好的方法可以每次都准确地做到这一点呢?
4 个回答
3
试试这个:
>>> int('00000000053', 10)
53
11
以 0
开头的数字被认为是 八进制。
>>> 07
7
>>> 08
File "<stdin>", line 1
08
^
SyntaxError: invalid token
你可以把这个以零开头的数字放进一个字符串里,这样就可以正常使用了。
>>> int("08")
8
int()
函数可以接受一个可选的参数,这个参数是进制,所以上面的内容相当于:
>>> int("08", 10)
8
8
前面的零被认为是八进制的。我假设你是在转换字符串“000000013”,而不是字面上的000000013,所以你可以通过 int("000000013",10)
将它们转换为十进制整数。
如果“伤害已经造成”,也就是说这些数字已经被当作八进制字面量处理过了,你可以使用以下方法(注意,这种做法有风险,不推荐使用):
int(("%o" % 00000013),10)