修改学生信息程序--实现成绩和年龄的排序

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)

猜你喜欢

转载自blog.csdn.net/weixin_43409365/article/details/83345370
今日推荐