显示前导零的数字
鉴于:
a = 1 b = 10 c = 100
我想为小于2位的所有数字显示前导零,即:
01 10 100
这个给你:
print "%02d" % (1,)
基本上%就像printf
或sprint
。
您可以使用zfill:
print str(1).zfill(2) print str(10).zfill(2) print str(100).zfill(2)
打印:
01 10 100
在Python 2.6+和3.0+中,您可以使用format()
string方法:
for i in (1, 10, 100): print('{num:02d}'.format(num=i))
或使用内置的(对于单个号码):
print(format(i, '02d'))
有关新的格式化function,请参阅PEP-3101文档。
或这个:
print '{0:02d}'.format(1)
print('{:02}'.format(1)) print('{:02}'.format(10)) print('{:02}'.format(100))
打印:
01 10 100
x = [1, 10, 100] for i in x: print '%02d' % i
结果:
01 10 100
阅读文档中使用%的更多关于string格式的信息。
pythonic的方式来做到这一点:
str(number).rjust(string_width, fill_char)
这样,如果原始string的长度大于string_width,则原始string将保持不变。 例:
a = [1, 10, 100] for num in a: print str(num).rjust(2, '0')
结果:
01 10 100
或另一种解决scheme
"{:0>2}".format(number)
使用格式string – http://docs.python.org/lib/typesseq-strings.html
例如:
python -c 'print "%(num)02d" % {"num":5}'
width = 5 num = 3 formatted = (width - len(str(num))) * "0" + str(num) print formatted
如果处理一位或两位数字:
'0'+str(number)[-2:]
或'0{0}'.format(number)[-2:]