问题分析与算法设计:新建一个文本文件 score.csv,用来保存10名考生3门课程的成绩,内容如下: 考号,程序设计,细胞生物,生理学 10153450101,72,96,88 10153450102,68,88,73 10153450103,63,63,66 10153450104,95,64,65 10153450105, 89,88,57 10153450106,77,87,77 10153450107,67,64,97 10153450108, 44,99, 64 10153450109,82,73,75 10153450110,79,78,85 以上各数据项均使用英文逗号分隔。请编写程序读取该文件内容,统计每门课程的平均分、最高分和最低分。
时间: 2023-09-14 18:12:23 浏览: 1358
好的,我可以帮你解决这个问题。首先,我们需要明确一下处理的步骤:
1. 读取 score.csv 文件,将数据保存到程序中
2. 对每门课程的成绩进行统计,计算平均分、最高分和最低分
3. 输出统计结果
接下来,我们分步骤来实现这个程序。
1. 读取 score.csv 文件
我们可以使用 Python 内置的 csv 模块来读取 csv 文件。具体实现如下:
```python
import csv
scores = []
with open('score.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
scores.append(row)
```
这段代码的作用是打开 score.csv 文件,使用 csv.reader() 函数读取文件中的每一行数据,并将其添加到一个列表中。
2. 对每门课程的成绩进行统计
我们需要遍历每一列数据,将其转化为数字类型进行计算。具体实现如下:
```python
# 将第一行数据(考试科目名称)从成绩列表中删除
subjects = scores.pop(0)
# 初始化平均分、最高分和最低分列表
avg_scores = [0] * 3
max_scores = [0] * 3
min_scores = [100] * 3
# 遍历每一列数据,进行统计
for i in range(1, 4):
# 将每一列数据转化为数字类型
column = [int(row[i]) for row in scores]
# 计算平均分、最高分和最低分
avg_scores[i-1] = sum(column) / len(column)
max_scores[i-1] = max(column)
min_scores[i-1] = min(column)
```
这段代码的作用是先将第一行数据(考试科目名称)从成绩列表中删除,然后遍历每一列数据,将其转化为数字类型,再计算平均分、最高分和最低分。
3. 输出统计结果
我们可以使用 Python 的 print() 函数输出统计结果。具体实现如下:
```python
# 输出统计结果
print("科目\t平均分\t最高分\t最低分")
for i in range(3):
print("{}\t{}\t{}\t{}".format(subjects[i+1], avg_scores[i], max_scores[i], min_scores[i]))
```
这段代码的作用是使用 print() 函数输出统计结果。
完整代码如下:
阅读全文