将一组学生的信息(姓名、语文成绩、数学成绩、英语成绩)写入到文件score.txt中,一行存储一个学生的信息,各字段间以逗号分隔。然后读取文件中内容计算每个学生的平均分,将结果(姓名,平均成绩)写入到文件result.txt中。
时间: 2023-07-16 16:14:53 浏览: 88
从文本文件输入n个同学的姓名、性别、成绩,按成绩又高到底的顺序输出所有学生信息,分别求出男同学、女同学的平均成绩并输出
4星 · 用户满意度95%
以下是 Python 代码实现:
```python
# 写入学生信息到文件
with open("score.txt", "w") as f:
f.write("张三,90,85,92\n")
f.write("李四,80,92,87\n")
f.write("王五,70,75,80\n")
# 读取文件中内容并计算平均分
with open("score.txt", "r") as f:
lines = f.readlines()
with open("result.txt", "w") as fw:
for line in lines:
data = line.strip().split(",")
name = data[0]
score_sum = 0
for i in range(1, 4):
score_sum += int(data[i])
avg_score = round(score_sum / 3, 2)
fw.write(name + "," + str(avg_score) + "\n")
```
以上代码中,首先使用 `with open("score.txt", "w") as f` 打开文件并写入学生信息。每个学生的信息用逗号分隔,并且每个学生的信息占一行。
然后使用 `with open("score.txt", "r") as f` 打开文件并读取内容。使用 `readlines()` 方法将文件内容按行读取为一个列表,然后遍历列表中的每一行,依次计算每个学生的平均分。计算平均分时,使用 `strip()` 方法去除字符串前后的空格,然后使用 `split(",")` 方法将字符串按逗号分隔为一个列表,再依次取出姓名和语文、数学、英语成绩,并将成绩转换为整数类型求和。最后除以 3 并使用 `round()` 方法保留两位小数得到平均分。
最后使用 `with open("result.txt", "w") as fw` 打开文件并写入每个学生的姓名和平均分。每个学生的信息占一行,并用逗号分隔。
阅读全文