本文主要整理和汇总python一系列的格式化输出方式:
打印整数
print ("I'm number %d" % (20))
>>> I'm number 20
打印浮点数(默认)
print("This book's weight is %f kg" % (0.85))
>>> This book's height is 0.850000 kg
打印浮点数(指定位数)
print("His height is %.2f m" % (1.73))
>>> His height is 1.73 m
打印字符串
print("My name is %s" % ('terry'))
>>> My name is terry
打印指定占位符宽度
print("Type:%9s Value:%3d Latency:%5.2f" % ('AVP_KMOD', 44, 0.45))
>>> Type: AVP_KMOD Value: 44 Latency: 0.45
打印指定占位符(左对齐)
print("Name:%-10s Age:%-8d Height:%-8.2f"%("Terry",25,1.83))
>>> Name:Terry Age:25 Height:1.83
打印指定占位符(前导0)
print ("Speed:%010d Rate:%08d Height:%08.2f"%(1000,25,1.83))
>>> Speed:0000001000 Rate:00000025 Height:00001.83
在python2.6之后,又增加了一种格式化字符串的函数str.format(),通过{}来代替%。
用法主要包含以下几类:
通过位置
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次:
print('{0},{1},{0}'.format('aaa', 'bbb'))
>>> aaa,bbb,aaa
通过关键字参数
print('{name},{age}'.format(age=18,name='Terry'))
>>> Terry,18
通过对象属性
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return 'This guy is {self.name},he is {self.age} old.'.format(self=self)
print str(Person('Terry',18))
>>> This guy is Terry,he is 18 old.
通过下标
person = ['Terry',18]
print('{0[0]},{0[1]}'.format(person))
>>> Terry,18
通过格式
如上面的前导0:
print('{:0>8}'.format('189'))
print('{:>8}'.format('189'))
print('{:a>8}'.format('189'))
>>> 00000189
>>> 189
>>> aaaaa189
以及浮点数:
print('{:.2f}'.format(321.33345))
>>> 321.33
其他类型
主要就是二进制b、十进制d、八进制o、十六进制x:
print('{:b}'.format(46))
print('{:d}'.format(46))
print('{:o}'.format(46))
print('{:x}'.format(46))
>>> 101110
>>> 46
>>> 56
>>> 2e
此外, 用逗号还能用来做金额的千位分隔符。
print('{:,}'.format(99988844333))
>>> 99,988,844,333