文件“stu_infol.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需要从该文件中读出信息,并依次为每位学生输入三门课的成绩,计算平均成绩,再将学生完整信息(姓名、学号、籍贯、课程1、课程2、课程3、平均分)写入文件“stu_info2.txt”并保存于磁盘上。
时间: 2023-12-19 07:07:05 浏览: 133
好的,这是一个文件IO和字符串处理的问题,我来解释一下具体的步骤:
1. 打开文件"stu_infol.txt",读取每一行,将每个学生的姓名、学号、籍贯分别存储在一个列表中。
2. 使用循环,依次读取每个学生的信息,然后分别输入三门课程的成绩,计算平均分。
3. 将学生的信息(包括姓名、学号、籍贯、课程1、课程2、课程3、平均分)格式化成一个字符串,并将字符串写入文件"stu_info2.txt"中。
4. 关闭文件。
下面是Python代码实现:
```python
# 打开文件,读取每个学生的信息
with open('stu_infol.txt', 'r') as f:
students = []
for line in f:
student = line.strip().split()
students.append(student)
# 循环读取每个学生的信息,输入三门课程的成绩,计算平均分,然后将信息写入文件
with open('stu_info2.txt', 'w') as f:
for student in students:
name, stu_id, place = student
score1 = float(input("请输入%s的课程1成绩:" % name))
score2 = float(input("请输入%s的课程2成绩:" % name))
score3 = float(input("请输入%s的课程3成绩:" % name))
avg_score = (score1 + score2 + score3) / 3
info = "{:<10}{:<15}{:<10}{:<10.1f}{:<10.1f}{:<10.1f}{:<10.1f}\n".format(name, stu_id, place, score1, score2, score3, avg_score)
f.write(info)
print("学生信息已成功写入文件!")
```
注意,这段代码只是一个示例,实际运行时还需要根据具体情况进行修改和优化。
阅读全文