为什么Python在从string转换为int时会删除前导零?

时间:2014-03-23 22:02:50

标签: python types int

>>> num = int('0241034812')
>>> print(num)
241034812
>>> 

在上面的代码中,我将变量num设置为0241034812;但是,当我打印变量时,它会删除第一个零。

为什么会这样?

4 个答案:

答案 0 :(得分:3)

整数存储/显示为“正常”数字,而不是字符串值。如果要显示前缀为零的数字,则可以在显示变量时执行此操作。

您可以使用以下语法将前导零添加到整数:

print "%010d" % (241034812,)

上面的示例将显示整数241034812,其中10位为0241034812

答案 1 :(得分:1)

  

我将变量'num'设置为'0241034812'

不,你将它设置为241,034,812:一个整数值,大约二亿四千万。如果要将其设置为'0241034812',则应使用字符串而不是整数。也就是说,您应该将呼叫撤至int

>>> num = '0241034812'
>>> print(num)
0241034812
>>> 

答案 2 :(得分:0)

您希望将整数打印到特定的零填充宽度,请使用字符串格式。 format() function,例如:

>>> num = 241034812
>>> print(format(num, '010d'))
0241034812

或打印首先解析整数的原始字符串。

整数不存储'打印宽度'或任意数量的前导0位数。

答案 3 :(得分:0)

如果您以一种前导零有用/重要(可能是条形码,ISBN等)的格式存储某些数字,则可以在使用{转换回字符串时重新添加它们{1}}

.format

简而言之,格式规范中的第一个0表示如果不存在则添加前导零以填充10个(10个)字符。