欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python格式化输出与format函数

程序员文章站 2022-07-14 23:52:26
...

本文主要整理和汇总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