有n个学生,每个学生的数据包括学号,姓名, 三门课成绩,平均成绩。编写一个python程序,完成以 下功能: (1)输入一个正整数n下面n行输入n个学生的学号,姓名,和三门 课成绩; (2)计算每个学生的平均成绩并输出所有学生根据平均分从高到低排序后 的数据(包括该学生的学号,姓名,平均分(保留两位小数)) 输入样例 3 101 Zhang 78 87 85 102 Wang 91 88 90 103 Li 75 90 84 输出样例: 102,Wang,89.67 101,Zhang,83.33 103,Li,83.00
时间: 2023-12-26 13:26:46 浏览: 43
可以使用以下的Python代码来实现:
```python
n = int(input())
students = []
for i in range(n):
data = input().split()
sid, name, scores = data[0], data[1], list(map(int, data[2:]))
avg_score = sum(scores) / 3
students.append((sid, name, avg_score))
students = sorted(students, key=lambda x: x[2], reverse=True)
for student in students:
print("{},{},{:.2f}".format(student[0], student[1], student[2]))
```
首先读入学生人数 n,然后循环 n 次,每次读入一行学生数据,并将其添加到一个列表中。对于每个学生,我们将其三门成绩求和并除以 3 得到平均成绩。最后,我们使用 sorted 函数根据学生平均成绩从高到低排序,并逐个输出每个学生的数据。
上述代码可以满足输入输出样例的要求。
相关问题
五名学生每名学生数据包括学号姓名三门课成绩求学生三门课的平均值并按平均值排序
好的,这是一个简单的数据处理问题。我可以为您提供一种解决方案。
首先,您需要输入五名学生的数据,可以采用列表嵌套的方式来存储每个学生的信息。这里我提供一份样例数据:
```
students = [
{'学号': '001', '姓名': '张三', '成绩': {'语文': 85, '数学': 92, '英语': 88}},
{'学号': '002', '姓名': '李四', '成绩': {'语文': 90, '数学': 86, '英语': 92}},
{'学号': '003', '姓名': '王五', '成绩': {'语文': 80, '数学': 78, '英语': 85}},
{'学号': '004', '姓名': '赵六', '成绩': {'语文': 92, '数学': 90, '英语': 95}},
{'学号': '005', '姓名': '钱七', '成绩': {'语文': 88, '数学': 82, '英语': 90}}
]
```
接下来,您可以编写一个函数来计算每个学生的平均分,并按照平均分从高到低进行排序。下面是一个示例函数:
```python
def sort_students(students):
for student in students:
scores = student['成绩']
avg_score = sum(scores.values()) / len(scores)
student['平均分'] = avg_score
sorted_students = sorted(students, key=lambda x: x['平均分'], reverse=True)
return sorted_students
```
最后,您可以调用该函数并输出排序后的结果:
```python
sorted_students = sort_students(students)
for student in sorted_students:
print(student['姓名'], student['平均分'])
```
输出结果如下:
```
赵六 92.33333333333333
李四 89.33333333333333
张三 88.33333333333333
钱七 86.66666666666667
王五 81.0
```
希望能够帮到您!
有n个学生,每个学生的数据包括学号,姓名, 三门课成绩,平均成绩。编写一个python程序,完成以 下功能: (1)输入一个正整数n下面n行输入n个学生的学号,姓名,和三门 课成绩; (2)计算每个学生的平均成绩并输出所有学生根据平均分从高到低排序后 的数据(包括该学生的学号,姓名,平均分(保留两位小数))
可以使用字典来保存每个学生的数据,然后计算平均分并排序输出。以下是实现代码:
```python
n = int(input("请输入学生人数:"))
students = []
for i in range(n):
print(f"请输入第{i+1}个学生的信息:")
student = {}
student['学号'] = input("学号:")
student['姓名'] = input("姓名:")
student['成绩1'] = float(input("成绩1:"))
student['成绩2'] = float(input("成绩2:"))
student['成绩3'] = float(input("成绩3:"))
student['平均分'] = round((student['成绩1'] + student['成绩2'] + student['成绩3']) / 3, 2)
students.append(student)
students = sorted(students, key=lambda x: x['平均分'], reverse=True)
print("按平均分从高到低排序后的学生信息:")
for student in students:
print(f"学号:{student['学号']},姓名:{student['姓名']},平均分:{student['平均分']}")
```
运行程序后,可以按照提示输入学生信息,最后输出按平均分从高到低排序后的学生信息。