有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输 入10个学生的数据,要求打印出3门课的总、平均成绩,井计算出每人的平均 成绩,将原有数据和计算出的平均分数存放在磁盘文件stu.txt中。
时间: 2023-12-15 19:16:00 浏览: 155
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
好的,这是一个典型的数据处理问题,需要使用到Python语言的基本数据类型、列表、字典、文件读写等知识点。我先给出一份示例代码供你参考:
```python
# 定义数据结构
students = []
for i in range(10):
student = {}
student['id'] = input('请输入第%d个学生的学号:' % (i+1))
student['name'] = input('请输入第%d个学生的姓名:' % (i+1))
student['grades'] = []
for j in range(3):
grade = float(input('请输入第%d个学生的第%d门成绩:' % ((i+1), (j+1))))
student['grades'].append(grade)
students.append(student)
# 计算总、平均成绩
total_grades = [0, 0, 0]
for student in students:
for j in range(3):
total_grades[j] += student['grades'][j]
average_grades = [total_grades[j]/10 for j in range(3)]
# 计算每人平均成绩并存储到文件中
with open('stu.txt', 'w') as f:
for student in students:
average_grade = sum(student['grades']) / 3
f.write('%s %s %.2f %.2f %.2f %.2f\n' % (student['id'], student['name'], student['grades'][0], student['grades'][1], student['grades'][2], average_grade))
# 输出结果
print('三门课的总成绩为:', total_grades)
print('三门课的平均成绩为:', average_grades)
```
代码中使用了一个列表来存储10个学生的数据,每个学生的数据采用字典来表示。通过循环依次输入每个学生的数据,并将其添加到列表中。接着,通过另一个循环计算出三门课的总、平均成绩,并将每个学生的平均成绩也计算出来,并存储到文件中。最后输出结果即可。
需要注意的是,代码中使用了文件读写操作,需要保证代码所在的目录下存在名为`stu.txt`的文件,否则会报错。
阅读全文