现有22级大数据班有其中6位同学的个人信息(学号+姓名 +Python的作业成绩)如下: 220309011xiaorun78 220309001xiaotan80 220309010xiaozhang82 220309012xiaoyang74 220309015xiaochen84 220309016xiaoli77 要求编程实现:学生输入上述某同学学号后输出其名字和个人成 绩以及成绩所在的名次,如果输入的学号不在字典中则输出字符 串“NotFound”。
时间: 2024-03-28 11:40:33 浏览: 33
好的,我可以帮你写一个Python程序来实现这个需求。你只需要输入学号,我就可以输出对应的姓名、成绩和排名。
以下是代码实现:
```python
data = {
"220309011xiaorun78": "小润 78",
"220309001xiaotan80": "小谈 80",
"220309010xiaozhang82": "小张 82",
"220309012xiaoyang74": "小杨 74",
"220309015xiaochen84": "小陈 84",
"220309016xiaoli77": "小李 77"
}
# 将数据转换成列表,并按照成绩从高到低排序
score_list = [(int(data[k].split()[-1]), data[k].split()[0]) for k in data]
score_list.sort(reverse=True)
# 构建字典,用于快速查找学生排名
rank_dict = {score_list[i][1]: i+1 for i in range(len(score_list))}
# 主程序
while True:
student_id = input("请输入学生学号:")
if student_id in data:
name, score = data[student_id].split()
rank = rank_dict[name]
print(f"{name}的成绩是{score},排名是第{rank}名。")
else:
print("NotFound")
```
你可以直接复制上面的代码并运行,然后输入学号来查询成绩、姓名和排名。
阅读全文