输入若干学生数据,包括姓名,以及ds,db,c 三门课程的成绩,存放到序列中,然后按总成绩由高到低输出所有学生的信息,使用内置函数sorted及lambda表达式实现。
时间: 2024-01-05 08:02:25 浏览: 207
可以按照以下方式编写代码:
```python
# 定义学生信息的序列
students = []
# 输入学生信息并添加到序列中
while True:
name = input("请输入学生姓名(输入exit退出):")
if name == "exit":
break
ds = int(input("请输入学生的ds成绩:"))
db = int(input("请输入学生的db成绩:"))
c = int(input("请输入学生的c成绩:"))
student = {"name": name, "ds": ds, "db": db, "c": c}
students.append(student)
# 使用lambda表达式定义排序规则
key_func = lambda s: s["ds"] + s["db"] + s["c"]
# 按照总成绩由高到低排序并输出
sorted_students = sorted(students, key=key_func, reverse=True)
for student in sorted_students:
print(f"{student['name']},ds成绩:{student['ds']},db成绩:{student['db']},c成绩:{student['c']},总成绩:{key_func(student)}")
```
这个程序会先让用户输入学生信息,并将每个学生的信息存储为一个字典,然后将所有学生的字典添加到一个序列中。接着,使用lambda表达式定义排序规则,即按照每个学生的ds、db和c成绩之和排序。最后,使用sorted函数对学生信息序列进行排序,并按照总成绩由高到低输出每个学生的信息。
阅读全文