format 格式化语法

别人写的format基础介绍:链接

针对对不齐问题

bug问题:
在这里插入图片描述
问题排查原因:
系统默认填充的是英文空格,而我们输出占用的是中文半角字符的宽度。单位不一致,就会出现不能对齐的状况。

解决方法:
指定填充的空格为中文全角空格。
这里涉及了输入法的半角全角切换问题,微软输入法是按【Shift+空格】键切换半全角输入,切换后空格的占位宽度可见明显长短变化即为切换成功。不成功去是输入法设置—>按键设置—>模式切换里打开在这里插入图片描述
问题详解:如何指定为全角空格呢?
直接上代码:
方法1:

#输出对齐的姓名和年龄列:
for key,value in dic_student.items():
	print("{0:{1}<12}".format(key," ")  #这里空格已经是全角的空格
	 	 ,"{0: <10}".format(value))
#输出
王建           18        
张云           19        
张秋雨          18        
刘欢           17        
姜宇           19       

方法2:

print('{0:{2}<12} {1:{2}<10}'.format(key,value,chr(12288)))
print("{0:{1}<12}".format(key,chr(12288)), "{0: <10}".format(value))

即将中文输出部分原先的默认英文空格填充换成中文空格填充,
如 chr(12288) ,即可解决问题。

注意点:

主要是因为对format遗漏了嵌套的使用用法及对format格式化运用不熟悉。
print('{0:<4} {1:@>5} '. format()

对应关系

精简概要,给自己看得懂(勿cue)

format中,{ :} 冒号前面的数字对应的是format()括号里的下标位置,即要输出的值,冒号后面则是对要输出值的格式化规范;冒号后面与 >左右对齐符号之间是指定填充的内容,缺省的话默认填充半角空格,若要指定全角空格或者其他则可以用嵌套的方法填充该处,此bug的解决就是如此。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐