[转载] Python format()格式:中文对齐问题
2021/6/3 14:21:01
本文主要是介绍[转载] Python format()格式:中文对齐问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考链接: Python format()
:<填充><对齐><宽度>,<精度><类型>引导符号填充单个字符,表示所创槽区域空余部分的填充 < 左对齐 > 右对齐 ^ 居中 槽的设定输出宽度数字的千位分隔符适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,c,d,o,x,X浮点数类型e,E,f,%
本文以大学排名的实例说明:
def printUnivList(ulist,num):
tplt = "{:^10}\t{:^10}\t{:^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)))
在创建的format格式模板中,创建的槽输出宽度为10,而系统默认的是西文字符串的输出长度,一下为输出结果:
很显然,排版上出现了紊乱
从原理上分析,是因为单个西文字符的长度要比单个中文字符的长度要小,所以当所需的中文字符串长度大于所提供的长度时,便会自动占用后面的空间,导致后面数据的排版不符合我们的规定。
要解决这个问题,只需要将我们的长度单位,换成单个中文字符串的长度,即10代表的是10个中文字符的长度
通过{3}和chr(12288)可以很好的解决问题()
def printUnivList(ulist,num):
tplt = "{0:^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)))
输出结果如下:
这篇关于[转载] Python format()格式:中文对齐问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础
- 2024-09-2610 种方法写出更好的 Python 代码
- 2024-09-25Python编程基础详解
- 2024-09-25Python编程入门教程
- 2024-09-25从零开始使用Python构建LLaMA 3
- 2024-09-23Python中理解和使用树形结构的简单教程
- 2024-09-23Python 编程基础入门
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战