4、 实验内容:在文本文件scores.txt中保存了一些专业的课程平均分,如下图所示:
编写一个Python程序,读入文本文件scores.txt中的数据,存放在二维列表中,并输出所有专业的分数;计算每个专业的最高分和最低分,按输出格式要求输出每个专业的名称、最高分、最低分以及对应的课程名(已知没有同分的情况);输出格式参照下图:
4、 实验内容:在文本文件scores.txt中保存了一些专业的课程平均分,如下图所示:
编写一个Python程序,读入文本文件scores.txt中的数据,存放在二维列表中,并输出所有专业的分数;计算每个专业的最高分和最低分,按输出格式要求输出每个专业的名称、最高分、最低分以及对应的课程名(已知没有同分的情况);输出格式参照下图:
with open('scores.txt','r') as f:
data = f.readlines()
lst = [d.split() for d in data]
head = lst[0]
scores = [ [s[0]]+[int(s[i+1]) for i in range(len(s)-1)] for s in lst[1:] ]
for i in [head]+scores:
print(i)
print()
for score in scores:
smax, smin = max(score[1:]),min(score[1:])
dic = {n:head[i] for i,n in enumerate(score)}
tmax = f"最高分('{dic[smax]}',{smax})"
tmin = f"最低分('{dic[smin]}',{smin})"
print(f"专业:{score[0].ljust(9,' ')} {tmax:<18} {tmin:<18}")
'''
注:最一行中.ljust(9,' ') 的空格为中文全角空格,用半角可能对不齐
输出:
['专业', 'C语言', 'Java', 'Python', 'C#', 'Javascript']
['软件工程', 95, 96, 85, 63, 91]
['计算机科学与技术', 75, 93, 66, 85, 88]
['网络工程', 86, 76, 96, 93, 67]
专业:软件工程 最高分('Java',96) 最低分('C#',63)
专业:计算机科学与技术 最高分('Java',93) 最低分('Python',66)
专业:网络工程 最高分('Python',96) 最低分('Javascript',67)
'''