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)