【发布时间】:2011-07-05 12:22:04
【问题描述】:
我的 str 类似于“60”或“100”。 我需要 str 为 '00060' 和 '00100',
我该怎么做? 代码是这样的: 我使用 '0'+'0'+'0' 作为插头。现在需要修复 d==0006000100
a4 ='60'
a5 ='100'
d=('0'+'0'+'0'+a4+'0'+'0'+a5)
【问题讨论】:
标签: python
我的 str 类似于“60”或“100”。 我需要 str 为 '00060' 和 '00100',
我该怎么做? 代码是这样的: 我使用 '0'+'0'+'0' 作为插头。现在需要修复 d==0006000100
a4 ='60'
a5 ='100'
d=('0'+'0'+'0'+a4+'0'+'0'+a5)
【问题讨论】:
标签: python
如果“60”已经是一个字符串,您必须在应用格式之前将其转换为数字。最实用的就是像 C 的 printf 一样工作:
a ="60"
b = "%05d" % int(a)
【讨论】:
如果它已经是一个字符串,你可能想要使用 .zfill() 方法。
myval.fill(5)
【讨论】:
像这样:
num = 60
formatted_num = u'%05d' % num
有关将数字格式化为字符串的更多信息,请参阅docs。
如果您的号码已经是一个字符串(如更新后的问题所示),您可以使用 rjust 字符串方法将其用零填充到正确的宽度:
num = u'60'
formatted_num = num.rjust(5, u'0')
【讨论】:
zfill)是适合你的方式,因为它是为你正在做的事情而构建的
"".format() 代替以实现未来兼容性:u"{0:0>5d}".format(60) 或 u"{0:0>5s}".format(str(60))。
"{0!s:0>5s}".format(60)
由于您正在处理字符串,str.zfill() 完全符合您的要求。
>>> s1, s2 = '60', '100'
>>> print s1.zfill(5), s2.zfill(5)
00060 00100
【讨论】:
感谢阅读您最喜欢的 Python 文档:
http://docs.python.org/library/string.html#formatstrings
"""
如果宽度字段前面有一个零 ('0') 字符,这将启用零填充。这等效于对齐类型“=”和填充字符“0”。 """
【讨论】: