现有22级大数据班有其中6位同学的个人信息(学号+姓名 +Python的作业成绩)如下: 220309011xiaorun78 220309001xiaotan80 220309010xiaozhang82 220309012xiaoyang74 220309015xiaochen84 220309016xiaoli77 要求编程实现:学生输入上述某同学学号后输出其名字和个人成 绩以及成绩所在的名次,如果输入的学号不在字典中则输出字符 串“NotFound”。
时间: 2024-03-28 15:40:08 浏览: 75
好的,我们可以使用字典来存储学生信息和成绩,然后根据输入的学号来查询对应的信息和排名。具体实现方法如下:
```python
# 定义一个字典,用来存储学生信息和成绩
students = {
"220309011xiaorun78": "小润,78",
"220309001xiaotan80": "小谈,80",
"220309010xiaozhang82": "小张,82",
"220309012xiaoyang74": "小杨,74",
"220309015xiaochen84": "小陈,84",
"220309016xiaoli77": "小李,77"
}
# 定义一个函数,用来查询学生信息和成绩
def find_student_info(id):
# 判断学号是否在字典中
if id in students.keys():
# 获取学生信息和成绩
info = students[id]
score = int(info.split(',')[1])
# 根据成绩排序,得出排名
rank = sorted([int(i.split(',')[1]) for i in students.values()], reverse=True).index(score) + 1
# 输出学生信息、成绩和排名
print(f"{info.split(',')[0]}的成绩是{score},排名第{rank}。")
else:
print("NotFound")
```
在函数中,我们首先定义了一个字典来存储学生信息和成绩。然后定义了一个函数,用来查询学生信息和成绩。在函数中,我们通过判断学号是否在字典中来确定是否能够查询到对应的学生信息。如果能够查询到,则获取学生信息和成绩,并根据成绩排序,得出排名。最后输出学生信息、成绩和排名。如果查询不到,则输出字符串"NotFound"。
需要注意的是,在字典中存储学生信息和成绩时,我们将学号、姓名和成绩合并成一个字符串进行存储,方便后续查询。同时,在计算排名时,我们使用了Python内置的sorted函数和index方法来实现。
阅读全文