如何将更多零位数的int转换为python中的字符串?

时间:2017-02-11 07:08:05

标签: python python-2.7 python-3.x

当我参加在线python比赛时,我被困在一个小手术中, 问题是, 我需要将整数0000转换为字符串。但是通过使用str(0000)将只给出' 0' 0作为输出同样我需要转换像0001,0003,0000,00045,0003这样的数字。

I am expecting str(0000)='0000'

4 个答案:

答案 0 :(得分:0)

我没有足够的声誉来添加上面的评论,我只是python的初学者。但是,提到了zfill解决方案,我想对此发表评论。我做了几个测试:

x = 0000
print str(x).zfill(4)
y = 00045
print str(y).zfill(5)

>>>0000
>>>00037
>>>[Finished in 0.04s]

如您所见,它似乎不适用于OP提供的其他一些示例。

答案 1 :(得分:0)

在Jonathan的例子中,0045变为37,因为解释器将0045视为八进制。 4 * 8 + 5 = 37。通常在这种情况下,我们不会从前导零开始。我们将从45开始。因此答案将是一致的。字符串形式的前导零为解释器提供了一种理解八进制表示的方法。希望这可以帮助。

答案 2 :(得分:0)

粘贴您的字符串。

print('{:0>4}'.format(str(1)))

时打印0001
print('{:0>4}'.format(str(123456)))

打印123456

您可以在.format()上查看https://pyformat.info

答案 3 :(得分:-4)

这可能很重要,但它有点像骗子。

str(0000)*4

虽然没有其他方法可以做到这一点我很确定,因为带有前导0的整数会被自动删除。

编辑:这仅适用于零,因为你可以从字面上不提供带有前导零的int作为任何参数,它会引发语法错误。