显示前导零的数字

鉴于:

a = 1 b = 10 c = 100 

我想为小于2位的所有数字显示前导零,即:

 01 10 100 

这个给你:

 print "%02d" % (1,) 

基本上就像printfsprint

您可以使用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:]