def show_menu(): '''显示菜单''' print('欢迎使用学生管理系统----') print('1.增加学生信息----------') print('2.删除学生信息----------') print('3.修改学生信息----------') print('4.展示所有学生信息------') print('5.根据名字查询----------') print('6.统计平均年龄----------') print('7.退出系统--------------') def add_stu(): '''返回的是所有学生列表!''' print('增加学生信息') # 循环增加 flag = 'y' #循环标记 studetns =[] # 多个学生 while flag=='y': id = input('请输入编号:') name = input('请输入名字:') sex = input('请输入性别:') age = input('请输入年龄:') # 创建一个学生字典! stu = {'id':id,'name':name,'sex':sex,'age':age} studetns.append(stu) #放到列表! flag = input('是否继续(y/n):') print('学生添加完成!!!') return studetns def del_stu(students): print('删除学生信息') print(students) name = input('请输入删除的名字:') # 根据名字找位置 delnum=0 for i,stu in enumerate(students): if stu['name']==name: delnum = i #要删除的位置 break students.pop(delnum) #根据位置删除 print('删除后的数据:') print(students) def update_stu(students): print('**********修改*************') name = input('请输入删除的名字:') # 根据名字找位置 delnum=0 for i,stu in enumerate(students): if stu['name']==name: delnum = i #要删除的位置 break students.pop(delnum) #根据位置删除 id = input('请输入新编号:') name = input('请输入新名字:') sex = input('请输入新性别:') age = input('请输入新年龄:') # 创建一个学生字典! stu = {'id': id, 'name': name, 'sex': sex, 'age': age} return students.append(stu) def show_list(students): print('展示所有学生信息!') # 循环打印所有学生 # [{},{},....] for i in students : i是每个值! for stu in students: print(stu) for i,v in enumerate(students): print(f'第{i+1}个,值:{v}') def search_name(students): print('根据名字查询') print('删除学生信息') print(students) name = input('请输入删除的名字:') # 根据名字找位置 delnum = 0 for i, stu in enumerate(students): if stu['name'] == name: delnum = i # 要删除的位置 break #students.pop(delnum)#删除 print(students[delnum]) #根据位置查找 def avg_age(students): print('统计平均年龄') print('平均年龄') sum = 0 #总年龄 for stu in students: sum += int(stu['age']) #年龄是字符串需要转换! print(f'平均年龄:{sum/len(students)}') if __name__ == '__main__': students = [] # 总学生列表! while True: show_menu() num = int(input('请输入选择的菜单(1-7):')) if num==7: print('感谢使用,退出程序!') flag = input('确定要退出么(y退出/n不退出!):?') if flag=='y': break #循环结束 else: continue # 中断本次 elif num ==1: students= add_stu() #增加 print(f'增加完了,所有的学生总数{len(students)}') continue elif num==2: del_stu(students) elif num==3: update_stu(students) elif num==4: show_list(students) elif num==5: search_name(students) elif num==6: avg_age(students) else: print('输入有误,请重新输入!')