创建一个字典,存放5位同学的学号、姓名和数学成绩。 (2)按数学成绩从高到低排序,并按如下格式输出最终排名: 第1名 学号: 1001 姓名: Tom 成绩: 98 第2名 学号: 1005 姓名: Jerry 成绩: 95
时间: 2024-05-20 09:13:04 浏览: 152
student_dict = {
"1001": {"name": "Tom", "score": 98},
"1002": {"name": "Jack", "score": 85},
"1003": {"name": "Mary", "score": 92},
"1004": {"name": "Lucy", "score": 88},
"1005": {"name": "Jerry", "score": 95}
}
sorted_dict = sorted(student_dict.items(), key=lambda x: x[1]["score"], reverse=True)
for i, (key, value) in enumerate(sorted_dict):
print(f"第{i+1}名 学号: {key} 姓名: {value['name']} 成绩: {value['score']}")
相关问题
简易 编写程序,要求: (1)创建一个字典,存放5位同学的学号、姓名和数学成绩。 (2)按数学成绩从高到低排序,并按如下格式输出最终排名: 第1名 学号: 1001 姓名: Tom 成绩: 98 第2名 学号: 1005 姓名: Jerry 成绩: 95
下面是一个简单的 Python 程序,实现了题目要求:
```python
# 创建一个字典,存放学生信息
students = {
'1001': {'name': 'Tom', 'score': 98},
'1002': {'name': 'Bob', 'score': 80},
'1003': {'name': 'Alice', 'score': 90},
'1004': {'name': 'John', 'score': 85},
'1005': {'name': 'Jerry', 'score': 95},
}
# 按分数排序
sorted_students = sorted(students.items(), key=lambda x: x[1]['score'], reverse=True)
# 输出排名
for i, (id, data) in enumerate(sorted_students):
rank = i + 1
name = data['name']
score = data['score']
print(f'第{rank}名 学号:{id} 姓名:{name} 成绩:{score}')
```
程序运行结果如下:
```
第1名 学号:1001 姓名:Tom 成绩:98
第2名 学号:1005 姓名:Jerry 成绩:95
第3名 学号:1003 姓名:Alice 成绩:90
第4名 学号:1004 姓名:John 成绩:85
第5名 学号:1002 姓名:Bob 成绩:80
```
PYTHON文件“成绩.txt”中存放了学生的学号,姓名,语文,数学和英语成绩。编写程序,统计每位同学的总分,并按总分由高到低进行排序后输出(总分相同的情况,排名可任意),输出包括学号,姓名和总分三项。
好的,我可以帮你编写这个程序。以下是代码:
```python
# 打开文件,读取学生数据
with open('成绩.txt', 'r') as f:
data = f.readlines()
# 定义一个字典,用于存储每位同学的总分
total_scores = {}
# 遍历每行数据,计算每位同学的总分
for line in data:
line = line.strip() # 去除字符串两端的空白字符
if line: # 如果该行不为空
student = line.split(',') # 将该行数据按逗号分隔为一个列表
student_id, name, chinese, math, english = student # 将列表中的数据解包到对应变量中
total_score = int(chinese) + int(math) + int(english) # 计算该同学的总分
total_scores[student_id] = (name, total_score) # 将该同学的姓名和总分存入字典中
# 对字典按照总分进行排序
sorted_scores = sorted(total_scores.items(), key=lambda x: x[1][1], reverse=True)
# 输出结果
for i, item in enumerate(sorted_scores):
student_id, (name, total_score) = item
print(f"排名{i+1}: 学号:{student_id}, 姓名:{name}, 总分:{total_score}")
```
程序中首先打开文件,读取学生数据。然后遍历每行数据,计算每位同学的总分,将每位同学的姓名和总分存入字典中。最后对字典按照总分进行排序,并输出结果。
希望这个程序能够帮助到你。
阅读全文