写代码3.文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。
时间: 2023-12-19 10:07:43 浏览: 208
C语言专业课程设计学生籍贯信息记录簿设计.doc
好的,这是一个文件 I/O 操作的问题,需要使用 Python 的文件读写操作。
首先,我们需要读取 `stu_info1.txt` 文件中的学生信息。假设文件中每一行的格式为:
```
姓名 学号 籍贯
```
我们可以使用 `open()` 函数打开文件,并使用 `readlines()` 方法读取每一行的内容,然后使用 `split()` 方法将每一行按空格分割成列表,最后将这些列表存储到一个列表中:
```python
with open('stu_info1.txt', 'r') as f:
lines = f.readlines()
students = []
for line in lines:
info = line.strip().split()
student = {
'name': info[0],
'id': info[1],
'hometown': info[2],
'score1': 0,
'score2': 0,
'score3': 0,
'average': 0,
}
students.append(student)
```
接下来,我们需要为每位学生输入三门课程成绩,并计算平均成绩。假设每门课程的成绩都是一个整数,我们可以使用一个循环依次输入每位学生的成绩,并计算平均成绩:
```python
for student in students:
student['score1'] = int(input(f"请输入 {student['name']} 的课程 1 成绩:"))
student['score2'] = int(input(f"请输入 {student['name']} 的课程 2 成绩:"))
student['score3'] = int(input(f"请输入 {student['name']} 的课程 3 成绩:"))
student['average'] = (student['score1'] + student['score2'] + student['score3']) / 3
```
最后,我们需要将每个学生的完整信息(包括姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 `stu_info2.txt`:
```python
with open('stu_info2.txt', 'w') as f:
for student in students:
f.write(f"{student['name']} {student['id']} {student['hometown']} {student['score1']} {student['score2']} {student['score3']} {student['average']:.2f}\n")
```
注意,在写入文件时,我们需要使用 `write()` 方法将每个学生的信息写入文件,并使用格式化字符串将每个学生的信息格式化为一个字符串。另外,我们还可以使用 `:.2f` 将平均分保留两位小数。
完整代码如下:
阅读全文