Python打印格式对齐

PYTHON输出格式对齐

采用.format打印输出时,可以定义输出字符串的输出宽度,在 ‘:’ 后传入一个整数, 可以保证该域至少有这么多的宽度。 用于美化表格时很有用。

>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> for name, number in table.items():
	    print('{0:10} ==> {1:10d}'.format(name, number))

Runoob     ==>          2
Taobao     ==>          3
Google     ==>          1

但是在打印多组中文的时候,不是每组中文的字符串宽度都一样,当中文字符宽度不够的时候,程序采用西文空格填充,中西文空格宽度不一样,就会导致输出文本不整齐

如下,打印中国高校排名

tplt = "{0:^10}\t{1:^10}\t{2:^10}"
    print(tplt.format("学校名称", "位置", "分数"))
    for i in range(num):
        u = ulist[i]
        print(tplt.format(u[0], u[1], u[2]))

把字符串宽度都定义为10,但是中文本身的宽度都不到10所以会填充西文空格,就会导致字符的实际宽度长短不一
在这里插入图片描述

解决方法:宽度不够时采用中文空格填充

中文空格的编码为chr(12288)

tplt = "{0:{3}^10}\t{1:{3}^10}\t{2:^10}"
    print(tplt.format("学校名称", "位置", "分数", chr(12288)))
    for i in range(num):
        u = ulist[i]
        print(tplt.format(u[0], u[1], u[2], chr(12288)))

在这里插入图片描述

tplt = "{0:^8}\t{1:^8}\t{2:^8}\t{3:^8}\t{4:^8}\t{5:^8}\t{6:^8}"
print(tplt.format('性别','科目','最低分','最高分','平均分','中位数','标准差',chr(12288)))
print(tplt.format('male','python',int(male_python_min),int(male_python_max),int(male_python_mean),int(male_python_median),int(male_python_std),chr(12288)))
print(tplt.format('male','math',int(male_math_min),int(male_math_max),int(male_math_mean),int(male_math_median),int(male_math_std),chr(12288)))
print(tplt.format('male','math',int(male_chinese_min),int(male_chinese_max),int(male_chinese_mean),int(male_chinese_median),int(male_chinese_std),chr(12288)))

在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值