有一个学生成绩的文件score.txt,包括学号、姓名、高数,英语两门课程的成绩。首先读取文件,然后计算该学生各门课程的平均分并输出。
时间: 2024-01-21 10:17:18 浏览: 74
假设score.txt的文件格式如下:
```
101,张三,80,90
102,李四,70,85
103,王五,90,95
```
其中每行数据表示一个学生的信息,前两个字段分别为学号和姓名,后两个字段分别为高数和英语的成绩。可以使用Python的文件读取和字符串处理功能来读取和处理score.txt中的数据,计算各门课程的平均分并输出结果,代码如下:
```python
with open('score.txt', 'r') as f:
lines = f.readlines() # 读取所有行数据
total_math, total_english, count = 0, 0, 0 # 定义变量用于累加成绩和计数
for line in lines:
fields = line.strip().split(',') # 去掉换行符并按逗号分隔字段
math = int(fields[2]) # 第三个字段为高数成绩
english = int(fields[3]) # 第四个字段为英语成绩
total_math += math # 累加高数成绩
total_english += english # 累加英语成绩
count += 1 # 计数加1
avg_math = total_math / count # 计算高数平均分
avg_english = total_english / count # 计算英语平均分
print('高数平均分:{:.1f}'.format(avg_math))
print('英语平均分:{:.1f}'.format(avg_english))
```
运行结果如下:
```
高数平均分:80.0
英语平均分:90.0
```
注意,代码中使用了Python的with语句来打开文件,该语句可以自动关闭文件,避免了手动关闭文件的繁琐操作。同时,代码中使用了字符串的strip()方法去掉每行数据的换行符,并使用split()方法按逗号分隔字段。最后,使用累加和计数的方式计算平均分,使用format()方法格式化输出结果。
阅读全文