3.改写之前的学生信息程序,添加如下四个功能
1) 按成绩从高到低打印学生成绩
2) 按成绩从低至高打印学生的信息
3)按年龄从大到小打印学生信息
4) 按年龄从小到大打印学生信息
li = [{"name":"小猪","age":21,"score":90},{"name":"大白","age":13,"score":79}]
# 添加学生信息
def add_student():
while 1:
name = input("请输入学生姓名:")
if not name:
break
age = int(input("请输入学生年龄:"))
score = int(input("请输入学生成绩:"))
d = {} # 创建一个新的字典
d["name"] = name # 值 对 键
d["age"] = age
d["score"] = score
li.append(d)
# 查看学生信息
def output_student(li):
print("+-------------+-------+----------+")
print("| name | age | score |")
print("+-------------+-------+----------+")
for d in li:
t = ((d["name"]).center(11),
str(d["age"]).center(7),
str(d["score"]).center(10))
line = "|%s|%s|%s|" % t # t是元祖
print(line)
print("+-------------+-------+----------+")
#获取成绩
def get_score(d):
return d["score"]
#获取年龄
def get_age(d):
return d["age"]
add_student()
print("按年龄从小到大排序后")
L3=sorted(li,key=get_age,reverse=False)
output_student(L3)
print("按年龄从大到小排序后")
L4=sorted(li,key=get_age,reverse=True)
output_student(L4)
print("按成绩从低到高排序后")
L1=sorted(li,key=get_score,reverse=False)
output_student(L1)
print("按成绩从高到低排序后")
L2=sorted(li,key=get_score,reverse=True)
output_student(L2)