多门课程分数统计—文件(关键词-数据格式)

多门课程分数统计-文件
【问题描述】从一个文本文件内读入2门课程任意多个学生的分数,分别求出这2门课的最高分,最低分、平均分和低于平均分的人数存入文件result.txt内。

【输入形式】一个文件,文件名为grade.txt,分数都为正整数,具体数据格式见样例输入文件。

每一行为一个学生的各门课成绩,每一列为一门课成绩

【输出形式】

计算出grade.txt中所有分数的最高分,最低分、平均分和低于平均分的人数,并分4行存入result.txt的文件内。平均分保留2位小数。

输出第一行为每门课程的最高分;

第二行为每门课程的最低分;

第三行为每门课程的平均分,

第四行为每门课低于平均分的人数

每行各个数之间由一个空格分隔。

【样例输入文件grade.txt】

60 89

70 88

80 98

【样例输出文件result.txt】

80 98

60 88

70.00 91.67

1 2

【说明】

这个题目需要有grade.txt文件提供数据,并把结果保存到result.txt文件中。

自己使用pycharm或idle编程测试时,需要在程序所在文件夹,建立一个数据文件,名为grade.txt

grade.txt第一列的数据为第1门课程多名学生的分数,第二列为第2门课程多名学生的分数,中间由一个空格分开。

cg平台上grade.txt文件已提供的文件

可以参考下

file = open('grade.txt', 'r', encoding='utf-8')
course_1_list = []
course_2_list = []
content = file.readline().strip()
while content:
    data_list = content.split(" ")
    course_1_list.append(int(data_list[0]))
    course_2_list.append(int(data_list[1]))
    content = file.readline().strip()
file.close()
file = open("result.txt", 'w', encoding='utf-8')
# 最高分
file.write("%d %d" % (max(course_1_list), max(course_2_list)) + "\n")
# 最低分
file.write("%d %d" % (min(course_1_list), min(course_2_list)) + "\n")
# 平均分
course_1_avg = sum(course_1_list) / len(course_1_list)
course_2_avg = sum(course_2_list) / len(course_2_list)
file.write("%.2f %.2f" % (course_1_avg, course_2_avg) + "\n")
# 低于平均分的人数
count_1 = len(list(filter(lambda x: x < course_1_avg, course_1_list)))
count_2 = len(list(filter(lambda x: x < course_2_avg, course_2_list)))
file.write("%d %d" % (count_1, count_2))
file.close()