当我参加在线python比赛时,我被困在一个小手术中, 问题是, 我需要将整数0000转换为字符串。但是通过使用str(0000)将只给出' 0' 0作为输出同样我需要转换像0001,0003,0000,00045,0003这样的数字。
I am expecting str(0000)='0000'
答案 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作为任何参数,它会引发语法错误。