python给定n(1≤n≤100)个学生的姓名和成绩,按照成绩从高到低排序输出。学生的姓名不会重复,如果有成绩相同的,则原来在名单中靠前的同学仍然排列在前面。
时间: 2024-05-05 10:21:00 浏览: 70
可以使用Python中的字典和排序函数来实现这个需求。具体步骤如下:
1. 定义一个空字典,用于存储学生姓名和成绩
2. 使用for循环获取每一个学生的姓名和成绩,并将其存储在字典中
3. 使用Python中的sorted函数对字典中的成绩进行排序,按照从高到低的顺序排列
4. 遍历排序后的成绩列表,按照顺序输出学生姓名和成绩即可
以下是实现代码:
```python
n = int(input("请输入学生人数:"))
students = {} # 定义一个空字典
# 获取每一个学生的姓名和成绩,并将其存储在字典中
for i in range(n):
name, score = input(f"请输入第{i+1}个学生的姓名和成绩,用空格隔开:").split()
students[name] = int(score)
# 对字典中的成绩进行排序,按照从高到低的顺序排列
sorted_scores = sorted(students.items(), key=lambda x: x[1], reverse=True)
# 遍历排序后的成绩列表,按照顺序输出学生姓名和成绩
for item in sorted_scores:
print(f"学生姓名:{item[0]},成绩:{item[1]}")
```
示例输出:
```
请输入学生人数:3
请输入第1个学生的姓名和成绩,用空格隔开:Tom 80
请输入第2个学生的姓名和成绩,用空格隔开:Lucy 90
请输入第3个学生的姓名和成绩,用空格隔开:Bob 80
学生姓名:Lucy,成绩:90
学生姓名:Tom,成绩:80
学生姓名:Bob,成绩:80
```
阅读全文