文件“stu_infol.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生完整信息(姓名、学号、贯、课程 1、课程 2、课程 3、平均分) 写入文件“stu info2.txt”并保存于磁盘上。
时间: 2023-12-22 14:12:49 浏览: 58
好的,这个问题也不难。我们可以使用 Python 的文件读写功能来实现。下面是一个示例的代码:
```python
# 定义一个学生类
class Student:
def __init__(self, name, id, hometown):
self.name = name
self.id = id
self.hometown = hometown
self.scores = []
def add_score(self, score):
self.scores.append(score)
def get_average_score(self):
return sum(self.scores) / len(self.scores)
# 读取学生信息
students = []
with open("stu_infol.txt", "r") as f:
for line in f:
name, id, hometown = line.strip().split()
student = Student(name, id, hometown)
students.append(student)
# 输入学生成绩
for student in students:
print("请输入{}的三门课程成绩:".format(student.name))
for i in range(3):
score = float(input("请输入第{}门课程的成绩:".format(i + 1)))
student.add_score(score)
# 计算平均成绩并写入文件
with open("stu_info2.txt", "w") as f:
for student in students:
average_score = student.get_average_score()
f.write("{}\t{}\t{}\t{}\t{}\t{}\t{}\n".format(
student.name, student.id, student.hometown,
student.scores[0], student.scores[1], student.scores[2], average_score))
print("学生信息已写入文件 stu_info2.txt")
```
以上代码中,我们首先定义了一个 `Student` 类,用于表示每个学生的信息和成绩。然后,我们通过文件读取功能,读取了文件 `stu_infol.txt` 中的学生信息,并创建了一个包含所有学生的列表 `students`。接着,我们遍历 `students` 列表,为每个学生输入三门课程的成绩,并调用 `add_score()` 方法将成绩添加到学生对象的 `scores` 列表中。最后,我们遍历 `students` 列表,计算每个学生的平均成绩,并将学生的完整信息写入文件 `stu_info2.txt` 中。
希望这个回答能够帮到你!如果你有任何其他问题,请继续提问。
阅读全文