解决方案:
1.将数值保存到txt文件里
2.将数值的格式变为列表的格式,保存到列表里
3.打印出标题
4.用for循环计算出前两个有汉字的列需要空几个空格(球员和球队这两列)
5.格式化打印出信息
6.注意:文件格式要用ANSI格式
代码:
menu = '球员 球队 总得分 场均得分 总篮板 场均篮板'
cba = []
for item in open('cba.txt'):
new = item.replace('\t',',')
over = new.replace('\n','')
list1 = over.split(',')
cba.append(list1)
print('\033[1;35m'+'='*70)
print('2018-2019赛季CBA 常规赛得分榜'.center(60))
print('='*70+'\033[0m')
print(menu)
for item in cba:
item1 = len(item[0].encode('gbk'))-len(item[0])
item11=item[0].ljust(10-item1)
item2 = len(item[1].encode('gbk'))-len(item[1])
item12=item[1].ljust(10-item2)
temp = 'print("{: <'+str(11-item1)+'}".format(item11),"{: <'+\
str(11-item2)+'}".format(item12),"{: <'+str(12)+\
'}".format(item[2]),"\033[1;31m"+"{: <'+str(14)+ \
'}".format(item[3])+"\033[0m"+"{: <' + str(12) +\
'}".format(item[4]),"{: <'+str(12)+'}".format(item[5]))'
exec(temp)
文件内容:
王骁辉 北京 242 4.4 93 1.7
Hudson 辽宁 1414 27.2 291 5.6
周鹏 广东 696 12.9 189 3.5
俞长栋 新疆 385 7 231 4.2
朱彦西 北京 511 9.3 214 3.9
西热力江 新疆 594 10.8 187 3.4
林志杰 广厦 720 13.1 203 3.7
孙桐林 深圳 412 7.5 319 5.8
杨鸣 辽宁 313 5.7 99 1.8
任骏飞 广东 379 6.9 198 3.6
结果: