1.现有22级大数据班有其中6位同学的个人信息(学号+姓名 +Python的作业成绩)如下: 220309011xiaorun78 220309001xiaotan80 220309010xiaozhang82 220309012xiaoyang74 220309015xiaochen84 220309016xiaoli77 要求编程实现:学生输入上述某同学学号后输出其名字和个人成 绩以及成绩所在的名次,如果输入的学号不在字典中则输出字符 串“NotFound”。
时间: 2024-03-28 20:40:33 浏览: 86
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
好的,以下是Python代码实现:
```python
students = {'220309011xiaorun78': '小润 78', '220309001xiaotan80': '小谭 80', '220309010xiaozhang82': '小张 82',
'220309012xiaoyang74': '小杨 74', '220309015xiaochen84': '小陈 84', '220309016xiaoli77': '小李 77'}
# 将字典转换成列表形式,方便排序
score_list = []
for key, value in students.items():
score_list.append((value.split()[0], int(value.split()[1])))
# 对成绩进行降序排序
score_list.sort(key=lambda x: x[1], reverse=True)
# 输出学生成绩排名
for i in range(len(score_list)):
print(f'第{i+1}名:{score_list[i][0]} {score_list[i][1]}分')
# 学生查询
stu_id = input('请输入学号:')
if stu_id in students:
stu_info = students[stu_id].split()
rank = score_list.index((stu_info[0], int(stu_info[1]))) + 1
print(f'学生姓名:{stu_info[0]},成绩为:{stu_info[1]}分,排名第{rank}名')
else:
print('NotFound')
```
使用方法:
1. 将上述代码复制到Python环境中执行;
2. 根据输出结果查找对应学号的同学姓名和成绩排名。
阅读全文