输入格式: 每组测试数据首先输入一个正整数n(1<n<=100),表示学生人数;然后是n行信息,分别表示学生的学号、姓名(长度不超过10且由英文字母构成的字符串)和3门课成绩(正整数)。 输出格式: 如果n出现错误,出现异常。如果n输入正确,输出排序后的学生信息,每行一个学生信息:学号、姓名、语文、数学、英语、平均成绩(保留2位小数),上面每个数据之间留一个空格。用python3写
时间: 2024-03-15 11:44:58 浏览: 98
以下是实现该功能的Python3代码:
```python
try:
n = int(input())
except ValueError:
print("出现异常")
students = []
for i in range(n):
info = input().split()
if len(info) != 5:
print("出现异常")
break
student = {'id': info[0], 'name': info[1], 'score1': int(info[2]), 'score2': int(info[3]), 'score3': int(info[4])}
student['average'] = round((student['score1'] + student['score2'] + student['score3']) / 3, 2)
students.append(student)
sorted_students = sorted(students, key=lambda s: s['average'], reverse=True)
for student in sorted_students:
print("{id} {name} {score1} {score2} {score3} {average}".format(**student))
```
这段代码首先读取输入的n值,如果出现异常则输出错误信息,否则按照题目要求读取每个学生的信息,将其保存在一个字典中,再计算平均成绩并添加到字典中。最后按照平均成绩排序并输出每个学生的信息。
阅读全文