Python format 格式化输入字符对不齐解决
format格式化python对不齐
·
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的解决就是如此。
更多推荐
已为社区贡献1条内容
所有评论(0)