如何将000000000001变为1?

时间:2010-01-03 17:26:14

标签: python parsing integer

我需要将格式化的整数转换为常规整数:

  • 000000000001需要变成1
  • 000000000053需要变成53
  • 000000965948需要变成965948

等等。

似乎一个简单的int(000000000015)导致了数字13.我知道幕后有一些奇怪的东西。每次都准确地做到这一点的最佳方法是什么?

4 个答案:

答案 0 :(得分:11)

0开头的数字被视为octal

>>> 07
7
>>> 08
   File "<stdin>", line 1
   08
    ^
SyntaxError: invalid token

你可以将零填充数字包装成一个字符串,然后就可以了。

>>> int("08")
8

int()接受一个可选参数,它是基数,因此上面将相当于:

>>> int("08", 10)
8

答案 1 :(得分:8)

前导零被视为八进制。我假设您正在转换字符串“000000013”,而不是字面值000000013,因此您应该能够将这些转换为基数10整数int("000000013",10)

如果“伤害已经完成”,并且它们是文字,已经转换为八进制文字,您可以使用以下(请注意,这是有害的和异端的:)

int(("%o" % 00000013),10)

答案 2 :(得分:3)

试试这个:

>>> int('00000000053', 10)
53

答案 3 :(得分:-8)

if x = "0000000000000001":
    x = 1