格式化字符串用法

python中字符串格式化方式除了%还有更广泛的format方式,简单易用.本文除了介绍format基本用法,还有其简化方式.

基本用法

'hello,{0}'.format('world !') #引用第一个参数

输出'hello, world !'

'{} is cool!'.format('python') #引用第一个参数

输出'python is cool!'

'I\'m {name}'.format(name='Chris') #引用名为name的参数

输出'I'm Chris'

类型转换

'Hey,{name!a}'.format(name="克瑞斯") #!a把返回字符串中非ASCII编码的字符改为Unicode编码形式.

输出"Hey,'\\u514b\\u745e\\u65af'"

'Hey,{name!s}'.format(name="克瑞斯") #!r返回字符串为str函数下形式,用户易读.

输出'Hey,克瑞斯'

'Hey,{name!r}'.format(name="克瑞斯") #!r返回字符串为repr函数下形式,解释器易读.

输出"Hey,'克瑞斯'"

进制转换

:后传入#加进制符号表示转为相应进制数.

'{0} in HEX is {0:#x}'.format(16) #转为十六进制

输出'16 in HEX is 0x10'

'{0} in OCT is {0:#o}'.format(16) #转为八进制

输出'16 in OCT is 0o20'

对齐字符串

:后传入整数,可以保证该域至少有这么多的宽度. 用于美化表格时很有用.
在:与整数之间添加<、>、^,表示左对齐、右对齐、居中.

'{:10}'.format(100) #整型默认右对齐

输出' 100'

'{:<10}'.format(100) #左对齐

输出'100 '

'{:10}'.format('100') #字符串默认左对齐

输出'100 '

'{:_>10}'.format('100') #用_代替多余空间

输出'_______100'

截取字符串

'{:.3}'.format(1/3)' #可用于浮点数保留几位小数

输出'0.333'

'{:.3}'.format('Have a good day!')' #对于字符串截取前几位字符

输出'Hav'

时间格式化

from datetime import datetime
'{:%Y-%m-%d %H:%M}'.format(datetime(2018,5,30,15,00))
输出'2018-05-30 15:00'

参数指定格式

'{:{char}{align}{width}}'.format('test',char='_',align='^',width='10')
输出'___test___'

from datetime import datetime

dt=datetime(2018,5,30,15,0)
'{:{dfmt} {tfmt}}'.format(dt,dfmt='%Y-%m-%d',tfmt='%H:%M')
输出'2018-05-30 15:00'


简化用法

‘{ }’.format( ) == f’{ }’

f"hello,{'world!'}" #输出 'hello,world!'

f"{1/3:.3}" #输出 '0.333'

Show comments from Gitment