代码应如何优化可以实现图三的成绩居中对齐。

img

img

img

这种数据要格式化,很难一一对齐,因为是数字,字母与汉字宽度不一致
直接格式化可以用format

给你看看两种效果:
# 显示学生信息
def showinfo():
    with open(filename, encoding = 'utf-8') as showfile_info:
        print("{:<6}{:<6}{:<8}{:<10}{:<10}{:<6}".format('学号', "姓名", "英语成绩", "Python成绩", "c语言成绩", "总成绩"))
        line_info = showfile_info.readlines()
        for line in line_info[1:]:  # 遍历列表,输出各个元素
            print("{:<6}{:<6}{:<8}{:<10}{:<10}{:<6}".format(*line.split()))
            
def showinfo1():
    import prettytable as pt
    with open(filename, encoding = 'utf-8') as showfile_info:
        t = pt.from_csv(showfile_info)
        print(t)    
showinfo()
'''--result
学号    姓名    英语成绩    Python成绩  c语言成绩     总成绩   
1006  qaz   33      44        55        132   
1001  lpj   88      88        88        264   
1002  Ipr   66      77        44        187   
1003  Ipl   33      22        22        77    
'''
showinfo1()
'''--result
+------+------+----------+------------+-----------+--------+
| 学号 | 姓名 | 英语成绩 | Python成绩 | c语言成绩 | 总成绩 |
+------+------+----------+------------+-----------+--------+
| 1006 | qaz  |    33    |     44     |     55    |  132   |
| 1001 | lpj  |    88    |     88     |     88    |  264   |
| 1002 | Ipr  |    66    |     77     |     44    |  187   |
| 1003 | Ipl  |    33    |     22     |     22    |   77   |
+------+------+----------+------------+-----------+--------+
'''