Python 有三种格式化方式,推荐最后一种;
% 格式化操作符
print('Binary is %d, hex is %d' % (a, b))str.format 格式化
print('{} = {}'.format(key, value))你可以在 {} 里写个冒号,然后把格式说明符写在冒号的右边,用以规定 format 方法所接收的这个值应该按照怎样的格式来调整。在 Python 解释器里输入 help('FORMATTING'),可以详细查看 str.format 使用的这套格式说明符所依据的规则。
formatted = '{:<10} = {:2f}'.format(key, value)这种写法的效果可以这样理解:系统先把 str.format 方法接收到的每个值传给内置的 format 函数,并找到这个值在字符串里对应的 {},同时将 {} 里面写的格式也传给 format 函数,例如系统在处理 value 的时候,传的就是 format(value, '.2f')。
调用 str.format 方法的时候,也可以给 str 的{}里面写上数字,用来指代 format 方法在这个位置所接收到的参数值位置索引。
formatted = '{1} = {0}'.format(key, value)同一个位置索引可以出现在 str 的多个{}里面,这些{}指代的都是 format 方法在对应位置所收到的值。
formatted = '{0} loves food. {0} loves bed.'.format('kity')当然,这种{}形式的说明符,还支持一些比较高级的用法,例如可以查询 dict 中某个键的值,可以访问 list 里某个位置的元素,还可以把值转化成 Unicode 或 repr 字符串。下面这段代码把这三项特性结合了起来。
formatted = 'First letter is {menu[oyster][0]!r}.'.format(menu=menu)插值格式字符串
formatted = f'{key}={value}'
formatted = f'{key!r:<10} = {value:.2f}'
for i, (item, count) in enumerate(party):
print(f'#{i+1}:'
f'{item.title();10s} = '
f'{round(count)}')
print(f'My number is {number:.{place}f}')