python编写成绩排名程序_一日一技:Python实现有序列表并列排名
时间: 2024-02-28 10:57:03 浏览: 155
以下是一个用Python实现成绩排名的程序,包含有序列表并列排名功能:
```python
# 定义一个字典,用于存储学生的成绩信息
scores = {}
# 循环输入学生的成绩信息
while True:
# 输入学生的学号、姓名和成绩
student_id = input("请输入学生的学号:")
name = input("请输入学生的姓名:")
score = float(input("请输入成绩:"))
# 将成绩信息存储到字典中
if student_id not in scores:
scores[student_id] = {}
scores[student_id][name] = score
# 询问是否继续输入
is_continue = input("是否继续输入?(Y/N)")
if is_continue.lower() == "n":
break
# 将学生按成绩从高到低排序
sorted_scores = sorted(scores.items(), key=lambda x: sum(x[1].values()), reverse=True)
# 打印成绩排名
print("成绩排名:")
rank = 1
prev_score = None
for student_id, info in sorted_scores:
total_score = sum(info.values())
if total_score != prev_score:
rank = rank + 1
prev_score = total_score
print("排名:{},学号:{},姓名:{},成绩:{}".format(rank, student_id, list(info.keys())[0], total_score))
```
该程序会要求用户输入学生的学号、姓名和成绩,然后将成绩信息存储到一个字典中。程序会对成绩进行排序,并按排名顺序打印出学生的信息和总成绩。如果有多个学生的成绩相同,程序会将它们并列排名。
阅读全文