[转载] Python中format函数用法

参考链接: Python | format

Python中format函数用法 

format优点 

format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点。 

1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 

2.单个参数可以多次输出,参数顺序可以不相同 

3.填充方式十分灵活,对齐方式十分强大 

4.官方推荐用的方式,%方式将会在后面的版本被淘汰 

填充 

位置填充 

(1)通过位置来填充字符串 

foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 …… 

也可以不输入数字,这样也会按顺序来填充 

同一个参数可以填充多次,这个是format比%先进的地方 

q1 = '古代私塾教育的四书五经分别是指:{0} 、{1} 、{2} 、{3} 和{4} 、{5} 、{6}、{7}、{8}。'

 

print(q1.format('《大学》',' 《论语》','《孟子》','《中庸》','《周易》','《诗经》','《尚书》','《礼记》','《春秋》'))

 

 

 

q2 = '古代私塾教育的四书五经分别是指:{} 、{} 、{} 、{} 和{} 、{} 、{}、{}、{}。'

 

print(q2.format('《大学》',' 《论语》','《孟子》','《中庸》','《周易》','《诗经》','《尚书》','《礼记》','《春秋》'))

 

 

 

q3 = '屡{0}屡{1},屡{1}屡{0}'

 

print(q3.format('战','败')) 

  

运行结果: 

古代私塾教育的四书五经分别是指:《大学》 、 《论语》 、《孟子》 、《中庸》 和《周易》 、《诗经》 、《尚书》、《礼记》、《春秋》。 

古代私塾教育的四书五经分别是指:《大学》 、 《论语》 、《孟子》 、《中庸》 和《周易》 、《诗经》 、《尚书》、《礼记》、《春秋》。 

屡战屡败,屡败屡战 

通过Key来填充 

q4 = '小时不识{name1},呼作{name2}。' print(q4.format(name1='月',name2='白玉盘')) 

  

运行结果: 

小时不识月,呼作白玉盘。 

通过下标来填充 

q5 = '此{names[0]}只应{names[1]}上有,{names[2]}能得几回闻。' names = ['曲','天','人间'] print(q5.format(names=names)) 

  

运行结果: 

此曲只应天上有,人间能得几回闻。 

通过字典的Key 

q6 = '安得{names[name1]}千万间,大庇{names[name2]}天下俱欢颜。' names = {'name1':'广厦','name2':'寒士'} print(q6.format(names=names)) 

运行结果: 

安得广厦千万间,大庇寒士天下俱欢颜。 

通过对象的属性 

q7 = '{names.name1}生{names.name2},春来发几枝?' class names:     name1 = '红豆'     name2 = '南国' print(q7.format(names=names)) 

  

运行结果: 

红豆生南国,春来发几枝? 

使用魔法参数 

q8 = '昔我{}矣,杨柳{w1}。今我来{},雨雪{w2}。' args = ['往','思'] kwargs = {'w1':'依依','w2':'霏霏'} print(q8.format(*args,**kwargs)) 

  

运行结果: 

昔我往矣,杨柳依依。今我来思,雨雪霏霏。 

浮点数格式化 

用逗号做金额的千位分隔符 

print('{:,}'.format(5463217788)) 

运行结果: 

5,463,217,788 

限定浮点值精确度 

print('{:.2f}'.format(3.1415926)) 

运行结果: 

3.14 

  

科学计数法转化为浮点型数据 

print('{:.5f}'.format(1.2e-4)) 

运行结果: 

0.00012 

浮点型数据转化科学计数法 

print('{:.2e}'.format(134432255888)) 

运行结果: 

1.34e+11 

十进制数自动转换成十六进制 

print("100的十六进制:{:#x}".format(100)) 

运行结果: 

100的十六进制:0x64 

十进制数自动转换成八进制 

print("100的八进制:{:#o}".format(100)) 

运行结果: 

100的八进制:0o144 

十进制数自动转换成二进制 

print("100的二进制:{:#b}".format(100)) 

运行结果: 

100的二进制:0b1100100 

显示百分比 

默认显示小数点后 6 位 

print("0.01的百分比表示:{:.0%}".format(0.01)) 

运行结果: 

0.01的百分比表示:1% 

日期格式化 

import datetime n = datetime.datetime.now() print('{:%a %Y-%m-%d %H:%M:%S}'.format(n)) 

运行结果: 

Sat 2020-08-15 19:53:12 

  

  

  

  

对齐 

^、<、>分别是居中、左对齐、右对齐,后面带宽度 

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 

  

print('{:>8}'.format('python')) print('{:*>8}'.format('python')) print('{:*<8}'.format('python')) print('{:*^8}'.format('python')) 

  

运行结果: 

**python 

python** 

*python* 

  

  

其它 

{}内嵌{} 

print('hello{0:>{1}} '.format('Jet',10)) 

运行结果: 

hello       Jet 

转义{和}符号 

print('{{ hello {0} }}'.format('Kevin')) 

运行结果: 

{ hello Kevin } 

format作为函数 

f = '神州{}号'.format print(f(1)) print(f(2)) 

运行结果: 

神州1号 

神州2号 

叹号的用法 

!后面可以加s r a 分别对应str() repr() ascii() 作用是在填充前先用对应的函数来处理参数  

repr() 函数将对象转化为供解释器读取的形式。 

str() 函数将对象转化为适于人阅读的形式。 

ascii() 转义非 ASCII 字符 

print('{!s}国'.format('中')) print('{!a}国'.format('中')) print('{!r}国'.format('中')) 

运行结果: 

中国 

'\u4e2d'国 

'中'国

上一篇:python 列表操作


下一篇:13 Java的foreach ---增强for循环