未对齐的原因:使用.format()输出中文时,当中文字符宽度不够时,系统采用西文字符填充,而中西文字符占用宽度不同,所以导致输出展示未对齐;
解决方法:采用中文字符串的空格填充 chr(12288),utf-8编码格式
实例:
--未对齐
def return_college_info(college_info, num):
print("{:10}\t{:6}\t{:10}\t{:10}\t{:^6}".format("排名", "学校", "地区", "排名", "积分"))
for i in range(num):
college = college_info[i]
print("{:10}\t{:10}\t{:10}\t{:10}\t{:^10}".format(college[0], college[1], college[2], college[3], college[4]))
排名 学校 地区 排名 积分
1 清华大学 北京 综合 852.5
2 北京大学 北京 综合 746.7
3 浙江大学 浙江 综合 649.2
4 上海交通大学 上海 综合 625.9
5 南京大学 江苏 综合 566.1
6 复旦大学 上海 综合 556.7
7 中国科学技术大学 安徽 理工 526.4
8 华中科技大学 湖北 综合 497.7
9 武汉大学 湖北 综合 488
10 中山大学 广东 综合 457.2
11 西安交通大学 陕西 综合 452.5
12 哈尔滨工业大学 黑龙江 理工 450.2
13 北京航空航天大学 北京 理工 445.1
14 北京师范大学 北京 师范 440.9
15 同济大学 上海 理工 439
16 四川大学 四川 综合 435.7
17 东南大学 江苏 综合 432.7
18 中国人民大学 北京 综合 409.7
19 南开大学 天津 综合 402.1
20 北京理工大学 北京 理工 395.6
21 天津大学 天津 理工 390.3
22 山东大学 山东 综合 387.9
23 厦门大学 福建 综合 383.3
24 吉林大学 吉林 综合 379.5
25 华南理工大学 广东 理工 379.4
26 中南大学 湖南 综合 378.6
27 大连理工大学 辽宁 理工 365.1
28 西北工业大学 陕西 理工 359.6
29 华东师范大学 上海 师范 358
30 中国农业大学 北京 农业 351.5
--中文对齐
def return_college_info(college_info, num):
tplt = "{0:10}\t{1:{5}10}\t{2:10}\t{3:10}\t{4:^10}"
print(tplt.format("排名", "学校", "地区", "排名", "积分", chr(12288)))
for i in range(num):
college = college_info[i]
print(tplt.format(college[0], college[1], college[2], college[3], college[4], chr(12288)))
排名 学校 地区 排名 积分
1 清华大学 北京 综合 852.5
2 北京大学 北京 综合 746.7
3 浙江大学 浙江 综合 649.2
4 上海交通大学 上海 综合 625.9
5 南京大学 江苏 综合 566.1
6 复旦大学 上海 综合 556.7
7 中国科学技术大学 安徽 理工 526.4
8 华中科技大学 湖北 综合 497.7
9 武汉大学 湖北 综合 488
10 中山大学 广东 综合 457.2
11 西安交通大学 陕西 综合 452.5
12 哈尔滨工业大学 黑龙江 理工 450.2
13 北京航空航天大学 北京 理工 445.1
14 北京师范大学 北京 师范 440.9
15 同济大学 上海 理工 439
16 四川大学 四川 综合 435.7
17 东南大学 江苏 综合 432.7
18 中国人民大学 北京 综合 409.7
19 南开大学 天津 综合 402.1
20 北京理工大学 北京 理工 395.6
21 天津大学 天津 理工 390.3
22 山东大学 山东 综合 387.9
23 厦门大学 福建 综合 383.3
24 吉林大学 吉林 综合 379.5
25 华南理工大学 广东 理工 379.4
26 中南大学 湖南 综合 378.6
27 大连理工大学 辽宁 理工 365.1
28 西北工业大学 陕西 理工 359.6
29 华东师范大学 上海 师范 358
30 中国农业大学 北京 农业 351.5