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))

控制输出字符串位数后的效果更加具有层次感。

常用对齐符号:

  • <:左对齐(默认)
  • >:右对齐
  • ^:居中对齐
  • PayPal
  • AliPay
  • WeChatPay
  • QQPay
Donate

评论