defdel_info():# 删除学生信息# 1.输入要删除的学号和名字
del_id =int(input('请输入要删除的学号:'))
del_name =input('请输入要删除的名字:')# 2.查找指定信息,确认是否存在,若存在继续判断是否删除,若不存在,返回用户不存在# 2.1 全局化info,然后遍历查找判断global info
for i in info:if del_id == i['id']and del_name == i['name']:print(i)print('确认是否删除信息,Y删除,N取消')whileTrue:
answer =input('请输入:')if answer =='Y':
info.remove(i)print('已删除!')breakelif answer =='N':print('返回主页面')returnelse:print('输入有误,请重新输入')else:print('用户不存在,请重新输入!')print(info)
修改学生信息
#修改学生信息defchange_info():# 1.输入查找的信息
change_id =int(input('请输入要修改的学生信息学号:'))# 2.判断输入的指定信息是否存在,# 2.0 global info 处理 遍历查找global info
for i in info:# 2.1若存在,打印该信息详情,确认信息if change_id == i['id']:print(i)# 确认是否修改print('是否确认修改?Y确认,N取消')# 若输入的不算Y,N 则循环重新输入whileTrue:
answer =input('请选择:')if answer =='Y':# 用函数代替显示代码
print_change()# 选择修改内容错误后继续循环选择whileTrue:
temp =int(input('请输入要修改的内容序号:'))if temp ==1:
i['id']=input('请输入新id:')print(i)returnelif temp ==2:
i['name']=input('请输入新name:')print(i)returnelif temp ==3:
i['gender']=input('请输入新gender:')print(i)returnelif temp ==4:
i['tel']=input('请输入新tel:')print(i)returnelse:print('输入序号有误,请重新输入序号!')elif answer =='N':print('返回主页面')returnelse:print('输入有误,请重新输入')# 2.2若不存在,返回用户不存在,重新操作。print('输入的学号不存在,请重新操作!!')
查询学生信息
deffind_info():# 查找信息global info
# 1.输入要查找的信息 例如id
find_id =int(input('请输入要查找的id:'))# 2.根据输入的信息,遍历infofor i in info:# 3.查找到则返回对应数据if find_id == i['id']:print(f'该学生id为{i["id"]},姓名为{i["name"]},性别为{i["gender"]},电话为{i["tel"]}')return# 没有则返回不存在print('查找的id不存在')
查看所有学生信息
defall_info():# 查看所有信息print('-------学生信息表---------')print('学号\t姓名\t性别\t电话')global info # 全局化for i in info:print(f'{i["id"]}\t{i["name"]}\t{i["gender"]}\t{i["tel"]}')
退出管理系统
# -在未选择序号6之前,对应功能执行后,应当继续重新选择功能。(循环)whileTrue:# 1.输出主功能页面
main_print()# 2.输入对应功能序号
num =int(input('请输入对应功能序号:'))# 3.执行对应序号的功能--定义对应功能函数if num ==1:
add_info()elif num ==2:
del_info()elif num ==3:
change_info()elif num ==4:
find_info()elif num ==5:
all_info()elif num ==6:# 退出循环系统
flag =input('确认要退出吗?请输入yes or no ')if flag =='yes':breakelse:print('输入的序号有误,请重新输入')
完整代码
#函数练习—----制作学生信息管理系统—----"""
需求:
1.输出主功能页面
1.1添加学生信息
1.2删除学生信息
1.3修改学生信息
1.4查询学生信息
1.5查看所有学生信息
1.6退出管理系统
2.输入对应功能序号
3.执行对应序号的功能
"""defmain_print():# 主页面显示print('------请选择功能--------')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.查询学生信息')print('5.查看所有学生信息')print('6.退出管理系统')print('-'*20)# 创建空列表保存所有信息数据,将单个学生信息放入字典info = [{},{},{}]
info =[]defadd_info():# 添加学生信息# 1.创建新信息
new_id =int(input('请输入学号:'))
new_name =input('请输入姓名:')
new_gender =input('请输入性别:')
new_tel =input('请输入手机号:')# 2.判断输入的信息是否重复,若重复则返回已存在,重新输入# 2.1 判断输入的id在info中是否存在# 2.1.1 info是全局变量,函数内修改要global处理global info
# id是单个字典中的key,因此先遍历info,再对比判断for i in info:if new_id == i['id']and new_name == i['name']and new_gender == i['gender']and new_tel == i['tel']:print('输入的信息已存在,请重新输入!!!')# return作用:判断完成,终止后面执行的代码return# 创建字典接收数据
new_info ={'id': new_id,'name': new_name,'gender': new_gender,'tel': new_tel}# 若不重复则录入单个信息进字典,然后添加进info
info.append(new_info)print(info)defprint_change():print('输入1:修改id')print('输入2:修改name')print('输入3:修改gender')print('输入4:修改tel')defdel_info():# 删除学生信息# 1.输入要删除的学号和名字
del_id =int(input('请输入要删除的学号:'))
del_name =input('请输入要删除的名字:')# 2.查找指定信息,确认是否存在,若存在继续判断是否删除,若不存在,返回用户不存在# 2.1 全局化info,然后遍历查找判断global info
for i in info:if del_id == i['id']and del_name == i['name']:print(i)print('确认是否删除信息,Y删除,N取消')whileTrue:
answer =input('请输入:')if answer =='Y':
info.remove(i)print('已删除!')breakelif answer =='N':print('返回主页面')returnelse:print('输入有误,请重新输入')else:print('用户不存在,请重新输入!')print(info)defchange_info():# 1.输入查找的信息
change_id =int(input('请输入要修改的学生信息学号:'))# 2.判断输入的指定信息是否存在,# 2.0 global info 处理 遍历查找global info
for i in info:# 2.1若存在,打印该信息详情,确认信息if change_id == i['id']:print(i)# 确认是否修改print('是否确认修改?Y确认,N取消')# 若输入的不算Y,N 则循环重新输入whileTrue:
answer =input('请选择:')if answer =='Y':# 用函数代替显示代码
print_change()# 选择修改内容错误后继续循环选择whileTrue:
temp =int(input('请输入要修改的内容序号:'))if temp ==1:
i['id']=input('请输入新id:')print(i)returnelif temp ==2:
i['name']=input('请输入新name:')print(i)returnelif temp ==3:
i['gender']=input('请输入新gender:')print(i)returnelif temp ==4:
i['tel']=input('请输入新tel:')print(i)returnelse:print('输入序号有误,请重新输入序号!')elif answer =='N':print('返回主页面')returnelse:print('输入有误,请重新输入')# 2.2若不存在,返回用户不存在,重新操作。print('输入的学号不存在,请重新操作!!')deffind_info():# 查找信息global info
# 1.输入要查找的信息 例如id
find_id =int(input('请输入要查找的id:'))# 2.根据输入的信息,遍历infofor i in info:# 3.查找到则返回对应数据if find_id == i['id']:print(f'该学生id为{i["id"]},姓名为{i["name"]},性别为{i["gender"]},电话为{i["tel"]}')return# 没有则返回不存在print('查找的id不存在')defall_info():# 查看所有信息print('-------学生信息表---------')print('学号\t姓名\t性别\t电话')global info # 全局化for i in info:print(f'{i["id"]}\t{i["name"]}\t{i["gender"]}\t{i["tel"]}')# -在未选择序号6之前,对应功能执行后,应当继续重新选择功能。(循环)whileTrue:# 1.输出主功能页面
main_print()# 2.输入对应功能序号
num =int(input('请输入对应功能序号:'))# 3.执行对应序号的功能--定义对应功能函数if num ==1:
add_info()elif num ==2:
del_info()elif num ==3:
change_info()elif num ==4:
find_info()elif num ==5:
all_info()elif num ==6:# 退出循环系统
flag =input('确认要退出吗?请输入yes or no ')if flag =='yes':breakelse:print('输入的序号有误,请重新输入')