Python问题统计总分,写入文件输出最高分

读文件score.txt,统计三门课程的总分,写入文件write.txt,并在控制台中输出总分最高同学的学号和分数

假设score.txt文件中每行包含学号、语文分数、数学分数、英语分数,用空格分隔。那么,代码如下:


# 打开score.txt文件,读取数据
with open('score.txt', 'r') as f:
    lines = f.readlines()

# 统计每个学生的总分
scores = {}
for line in lines:
    items = line.split()
    student_id = items[0]
    total_score = sum([int(x) for x in items[1:]])
    scores[student_id] = total_score

# 将每门课程的总分写入write.txt文件
with open('write.txt', 'w') as f:
    chinese_total = sum([int(x.split()[1]) for x in lines])
    math_total = sum([int(x.split()[2]) for x in lines])
    english_total = sum([int(x.split()[3]) for x in lines])
    f.write(f'语文总分:{chinese_total}\n')
    f.write(f'数学总分:{math_total}\n')
    f.write(f'英语总分:{english_total}\n')

# 输出总分最高同学的学号和分数
max_score_student_id = max(scores, key=scores.get)
max_score = scores[max_score_student_id]
print(f'总分最高的同学是:{max_score_student_id},分数是:{max_score}')

在这个例子中,我们使用with open语句来打开文件并读取/写入数据。读取score.txt文件时,我们使用readlines()方法将每行数据读取到一个列表中。然后,我们使用一个循环来计算每个学生的总分,并将学号和总分存储到一个字典中。接下来,我们将每门课程的总分写入write.txt文件,并输出总分最高同学的学号和分数。

PS: 请在当前目录创建score.txt, 内容类似:
1 98 96 90
2 99 100 85
3 67 87 76