问题描述
>>> num = int('0241034812')
>>> print(num)
241034812
>>>
在上面的代码中,我将变量num
设置为0241034812
;
但是,当我打印变量时,它会删除第一个零。
为什么会这样?
1楼
整数存储/显示为“正常”数字,而不是字符串值。 如果要显示前缀为零的数字,则可以在显示变量时执行此操作。
您可以使用以下语法将前导零添加到整数:
print "%010d" % (241034812,)
上面的示例将显示整数241034812,其中10位数字为0241034812
。
2楼
我将变量'num'设置为'0241034812'
不,你将它设置为241,034,812:一个整数值,大约二亿四千万。
如果要将其设置为'0241034812'
,则应使用字符串而不是整数。
也就是说,你应该将调用放到int
:
>>> num = '0241034812'
>>> print(num)
0241034812
>>>
3楼
您希望将整数打印到特定的零填充宽度,使用字符串格式。 ,例如:
>>> num = 241034812
>>> print(format(num, '010d'))
0241034812
或者首先打印解析整数的原始字符串。
整数不存储'打印宽度'或任何数字的前导0位数。
4楼
如果您以一种前导零有用/重要(可能是条形码,ISBN等)的格式存储某些数字,则可以在使用.format
转换回字符串时重新添加它们。
>>> num = int('0241034812')
>>> print('{:010d}'.format(num))
0241034812
简而言之,格式规范中的第一个0表示如果不存在则添加前导零以填充10(10)个字符。