Python格式化輸出與format函式
阿新 • • 發佈:2019-02-03
本文主要整理和彙總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