如何将000000000001变为1?

oro*_*aki 4 python parsing integer

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

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

等等.

看起来int(000000000015)数字13的结果很简单.我知道幕后有一些奇怪的东西.每次都准确地做到这一点的最佳方法是什么?

mik*_*iku 11

以数字开头的数字0被认为是八进制.

>>> 07
7
>>> 08
   File "<stdin>", line 1
   08
    ^
SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)

您可以将零填充数字包装成一个字符串,然后它应该可以工作.

>>> int("08")
8
Run Code Online (Sandbox Code Playgroud)

int() 采用可选参数,这是基数,因此上面将相当于:

>>> int("08", 10)
8
Run Code Online (Sandbox Code Playgroud)


Kim*_*ais 8

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

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

int(("%o" % 00000013),10)
Run Code Online (Sandbox Code Playgroud)

  • 如果你传递任意数量的"0"而没有任何其他数字,这将失败. (4认同)
  • lstrip,而不是rstrip. (2认同)