3.改写之前的学生信息程序,添加如下四个功能
1) 按成绩从高到低打印学生成绩
2) 按成绩从低至高打印学生的信息
3)按年龄从大到小打印学生信息
4) 按年龄从小到大打印学生信息
def add_stu(L):
while 1:
info = {}
name = input("请输入姓名:")
if name == '':
break
age = input("请输入年龄:")
score = input("请输入成绩:")
info["name"] = name
info["age"] = age
info["score"] = score
L.append(info)
return L
def output_stu(L):
print('+--------------------------------------+')
print("|" + "姓名".center(10) + '|' + "年龄".center(10) + '|' + '成绩'.center(10) + '|')
print('+--------------------------------------+')
for i in L:
print('| ', i['name'], " | ", i['age'], " | ", i['score'], " |")
print('+--------------------------------------+')
def dele_stu(L):
while 1:
flag=0
name = input("请输入学生姓名:")
if name == '':
break
for i in L:
if name == i["name"]:
flag=1
L.remove(i)
print("删除成功!")
break
if flag == 0:
print("该学生不存在!")
# 获取成绩
def get_score(d):
return d["score"]
# 获取年龄
def get_age(d):
return d["age"]
def main():
L = [{'name': "猛猛", 'age': '23', 'score': '98'}]
while 1:
print('+--------------------------------+')
print('| 1) 添加学生信息 |')
print('| 2) 查看学生信息 |')
print('| 3) 删除学生信息 |')
print('| 4) 按q退出 |')
print('| 5) 按学生成绩高-低显示学生信息 |')
print('| 6) 按学生成绩低-高显示学生信息 |')
print('| 7) 按年龄小-大显示学生信息 |')
print('| 8) 按年龄大-小显示学生信息 |')
print('+--------------------------------+')
s = input("请选择:")
if s == '1':
L = add_stu(L)
if s == '2':
output_stu(L)
if s == '3':
dele_stu(L)
if s == '5':
print("按成绩从高到低排序后")
L4 = sorted(L, key=get_score, reverse=True)
output_stu(L4)
if s == '6':
print("按成绩从低到高排序后")
L3 = sorted(L, key=get_score, reverse=False)
output_stu(L3)
if s == '7':
print("按年龄从小到大排序后")
L1 = sorted(L, key=get_age, reverse=False)
output_stu(L1)
if s == '8':
print("按年龄从大到小排序后")
L2 = sorted(L, key=get_age, reverse=True)
output_stu(L2)
if s == 'q':
break
main()