Python格式化输出
Python格式化输出的三种方式
1. %-
格式化
Python常用字符串格式化符号:
符号 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
使用方法:
# 定义变量
sales = 1000
sell_well = '苹果'
sell_bad = '柠檬'
===========================================================================================
'农名伯伯每天销售水果 %d 千克,销量最好的是 %s,销量不好的是 %s。' %(sales, sell_well, sell_bad)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 苹果,销量不好的是 柠檬。'
===========================================================================================
# 交换销量好坏的顺序
'农名伯伯每天销售水果 %d 千克,销量最好的是 %s,销量不好的是 %s。' %(sales, sell_bad, sell_well)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 柠檬,销量不好的是 苹果。'
%-
格式化方法要点:
- 在字符串中以格式化符号占位,然后在字符串结尾以%()格式指定格式化符号代表的变量
- %()括号里的内容存在顺序关系
2. str.format()
格式化
使用方法:
# 默认顺序取值,使用 {} 占位
'农名伯伯每天销售水果 {} 千克,销量最好的是 {},销量不好的是 {}。'.format(sales, sell_well, sell_bad)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 苹果,销量不好的是 柠檬。'
===========================================================================================
# 通过(sales, sell_well, sell_bad)的索引进行取值
'农名伯伯每天销售水果 {0} 千克,销量最好的是 {2},销量不好的是 {1}。'.format(sales, sell_well, sell_bad)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 柠檬,销量不好的是 苹果。'
===========================================================================================
# 单独定义变量取值
'农名伯伯每天销售水果 {a} 千克,销量最好的是 {b},销量不好的是 {c}。'.format(a=sales, b=sell_well, c=sell_bad)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 苹果,销量不好的是 柠檬。'
===========================================================================================
# 使用字典取值
data = {'a': sales,
'b': sell_well,
'c': sell_bad}
'农名伯伯每天销售水果 {a} 千克,销量最好的是 {b},销量不好的是 {c}。'.format(**data)
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 苹果,销量不好的是 柠檬。'
3. f‘’
格式化
使用方法:
# 以f字符开头,{} 内直接使用变量
f'农名伯伯每天销售水果 {sales} 千克,销量最好的是 {sell_well},销量不好的是 {sell_bad}。'
# 输出:'农名伯伯每天销售水果 1000 千克,销量最好的是 苹果,销量不好的是 柠檬。'
===========================================================================================
# 直接在 {} 内进行数学计算
f'{2 + 3 * 5 - 1}'
# 输出:'16'
===========================================================================================
# 调用Python内置函数
fruit = 'APPLE'
f'{fruit.lower()}'
# 输出:'apple'
===========================================================================================
# 调用自定义函数
fun = lambda x : x
f'{fun(fruit)}'
# 输出:'APPLE'
Python格式化输出的精度和位数控制
1. 小数精度控制
Python中对于小数精度的控制的使用方法:
# 定义变量
a = 3.1415926
===========================================================================================
# 小数点后保留3位
'%.3f'% a
# 输出:'3.142'
===========================================================================================
# 小数点后保留6位
'%.6f'% a
# 输出:'3.141593'
===========================================================================================
# 最小宽度为7,小数点后保留2位,默认左边使用空格补位
'%7.2f'% a
# 输出:' 3.14'
===========================================================================================
# 最小宽度为7,小数点后保留2位,左边补零
'%07.2f'% a
# 输出:'0003.14'
===========================================================================================
# 最小宽度为7,小数点后保留2位,左边补零,带符号
'%+07.2f'% a
# 输出:'+003.14'
===========================================================================================
# 整数的最小宽度为6,左边补零
b = 3
'%06d'% b
# 输出:'000003'
小数精度控制要点
一般语法为%a.bf
或 %.bf
两种,a
表示字符串最小宽度,b
表示数字精度,中间必须用.
隔开。
2. 字符串位数控制
字符串输出位数的控制对于类似表格的输出结果非常有用。
使用方法:
# 定义一个字符串列表
indexs = ['apple', 'banana', 'strawberry', 'pear', 'pineapple']
# 使用print()依次输出:
===========================================================================================
for index in indexs:
print("{} 索引输出结果".format(index))
输出结果:
可以看到,输出结果并未对齐。当数据量小时,还能勉强阅读,但如果数据量很大,字符串又都很长,阅读起来就很费眼睛了。所以,接下来将演示如何控制「输出位数」和「对齐方式」。
# 取10位,默认左对齐
for index in indexs:
print("{:10s} 索引输出结果".format(index))
# 取20位,默认左对齐
for index in indexs:
print("{:20s} 索引输出结果".format(index))
# 取10位,右对齐
for index in indexs:
print("{:>10s} 索引输出结果".format(index))
# 取10位,居中对齐
for index in indexs:
print("{:^10s} 索引输出结果".format(index))
控制输出字符串位数后的效果更加具有层次感。
常用对齐符号:
<:
左对齐(默认)>:
右对齐^:
居中对齐