4.编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
时间: 2023-12-20 13:03:49 浏览: 71
以下是Python的代码实现:
```python
n = int(input("请输入学生人数:"))
stu_dict = {}
for i in range(n):
stu_info = input("请输入第{}个学生的学号和成绩(以空格分隔):".format(i+1))
stu_id, stu_score = stu_info.split()
stu_dict[stu_id] = float(stu_score)
sorted_stu = sorted(stu_dict.items(), key=lambda x: x[1], reverse=True)
print("按成绩从高到低排序输出:")
for stu in sorted_stu:
print(stu[0], stu[1])
```
首先,我们输入学生人数 `n`;然后使用一个字典 `stu_dict` 存储学号和成绩。接下来,通过循环输入每个学生的学号和成绩,并将其添加到 `stu_dict` 中。
使用 Python 内置的 `sorted()` 函数进行按成绩从高到低排序,排序的关键字为字典中的值(即学生的成绩),并使用 `reverse=True` 参数指定降序排列。
最后,遍历排序后的列表,输出学生的学号和成绩。
相关问题
4. 编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
以下是一个简单的 Python 程序,使用列表和 lambda 函数实现按成绩从高到低排序输出:
```python
n = int(input("请输入学生数:"))
students = []
for i in range(n):
sid, score = input("请输入学号和成绩(以空格分隔):").split()
students.append((sid, float(score)))
students.sort(key=lambda x: x[1], reverse=True)
print("按成绩从高到低排序输出:")
for sid, score in students:
print(sid, score)
```
程序首先输入学生数 `n`,然后通过循环输入每个学生的学号和成绩,并将其存储在一个列表 `students` 中。接着使用 `sort()` 方法和一个 lambda 函数对列表进行排序,按照成绩从高到低排序。最后遍历排序后的列表,输出学号和成绩。
4.编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
以下是Python实现代码:
```python
# 输入学生数
n = int(input("请输入学生数:"))
# 初始化学生信息列表
students = []
# 输入学生信息
for i in range(n):
stu_info = input("请输入第{}个学生的学号和成绩(用空格隔开):".format(i+1))
stu_info_list = stu_info.split()
stu_num = stu_info_list[0]
stu_score = float(stu_info_list[1])
students.append({"num":stu_num, "score":stu_score})
# 按成绩从高到低排序
students_sorted = sorted(students, key=lambda x:x["score"], reverse=True)
# 输出排序后的学生信息
print("按成绩从高到低排序后的学生信息如下:")
for stu in students_sorted:
print("学号:{},成绩:{}".format(stu["num"], stu["score"]))
```
注意:本程序假设用户输入的学号和成绩是以空格隔开的,如果用户输入的格式不正确,程序会出错。如果需要做输入格式检查,可以自行添加相应的代码。
阅读全文