写一个代码:文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。
时间: 2023-12-17 12:02:52 浏览: 63
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
以下是代码实现:
```python
# 读取学生基本信息
with open("stu_info1.txt", "r", encoding="utf-8") as f:
students = []
for line in f.readlines():
info = line.strip().split()
student = {"name": info[0], "id": info[1], "hometown": info[2]}
students.append(student)
# 输入成绩并计算平均分
for student in students:
scores = []
for i in range(3):
score = float(input("请输入{}的第{}门课程成绩:".format(student["name"], i+1)))
scores.append(score)
average = sum(scores) / len(scores)
student["score1"] = scores[0]
student["score2"] = scores[1]
student["score3"] = scores[2]
student["average"] = average
# 写入完整信息到文件
with open("stu_info2.txt", "w", encoding="utf-8") as f:
for student in students:
info = "{} {} {} {:.1f} {:.1f} {:.1f} {:.1f}\n".format(student["name"], student["id"], student["hometown"], student["score1"], student["score2"], student["score3"], student["average"])
f.write(info)
```
该代码先读取“stu_info1.txt”中的学生基本信息,然后依次输入每位学生的三门课程成绩,并计算平均分。最后将完整信息(包括姓名、学号、籍贯、三门课程成绩和平均分)写入“stu_info2.txt”文件中。
阅读全文