文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生完整信息(姓名、学号、籍贯、课程1、课程2、课程3、平均分)写入文件。
时间: 2023-12-16 12:19:12 浏览: 92
以下是Python实现该功能的代码:
```python
# 读取文件并处理每个学生的信息
with open('stu_info1.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
info = line.strip().split() # 去除空格和换行符并按空格分割
name, id, hometown = info[0], info[1], info[2]
print('正在处理学生 %s 的信息...' % name)
# 输入成绩并计算平均分
score1 = float(input('请输入 %s 的课程1成绩:' % name))
score2 = float(input('请输入 %s 的课程2成绩:' % name))
score3 = float(input('请输入 %s 的课程3成绩:' % name))
avg_score = round((score1 + score2 + score3) / 3, 2)
# 将学生信息和成绩写入文件
with open('stu_info_with_score.txt', 'a', encoding='utf-8') as f_out:
f_out.write('%s %s %s %.2f %.2f %.2f %.2f\n' %
(name, id, hometown, score1, score2, score3, avg_score))
print('处理完成!')
```
假设原始文件内容如下:
```
张三 101 北京
李四 102 上海
王五 103 广州
```
程序运行后会提示输入每个学生的三门课程成绩,例如:
```
请输入 张三 的课程1成绩:85
请输入 张三 的课程2成绩:90
请输入 张三 的课程3成绩:92
```
然后将每个学生的完整信息(包括姓名、学号、籍贯、三门成绩和平均分)写入新文件“stu_info_with_score.txt”中,例如:
```
张三 101 北京 85.00 90.00 92.00 89.00
李四 102 上海 78.50 81.00 76.00 78.17
王五 103 广州 92.00 88.50 90.00 90.17
```
注意,本程序中使用了`with`语句自动关闭文件,避免了手动关闭文件时可能出现的错误。同时,使用了字符串格式化(`%`运算符)来方便地将多个变量组合成一个字符串写入文件中。
阅读全文