函数应用:学生管理系统
import time import os # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("---------------------------") print(" 学生管理系统 V1.0") print(" 1:添加学生") print(" 2:删除学生") print(" 3:修改学生") print(" 4:查询学生") print(" 5:显示所有学生") print(" 6:退出系统") print("---------------------------") def add_new_info(): """添加学生信息""" global info_list new_name = input("请输入姓名:") new_tel = input("请输入手机号:") new_qq = input("请输入QQ:") for temp_info in info_list: if temp_info['name'] == new_name: print("此用户名已经被占用,请重新输入") return # 如果一个函数只有return就相当于让函数结束,没有返回值 # 定义一个字典,用来存储用户的学生信息(这是一个字典) info = {} # 向字典中添加数据 info["name"] = new_name info["tel"] = new_tel info["qq"] = new_qq # 向列表中添加这个字典 info_list.append(info) def del_info(): """删除学生信息""" global info_list del_num = int(input("请输入要删除的序号:")) if 0 <= del_num < len(info_list): del_flag = input("你确定要删除么?yes or no") if del_flag == "yes": del info_list[del_num] else: print("输入序号有误,请重新输入") def modify_info(): """修改学生信息""" global info_list modify_num = int(input("请输入要修改的序号:")) if 0 <= modify_num < len(info_list): print("你要修改的信息是:") print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'], info_list[modify_num]['tel'],info_list[modify_num]['qq'])) info_list[modify_num]['name'] = input("请输入新的姓名:") info_list[modify_num]['tel'] = input("请输入新的手机号:") info_list[modify_num]['qq'] = input("请输入新QQ:") else: print("输入序号有误,请重新输入") def search_info(): """查询学生信息""" search_name = input("请输入要查询的学生姓名:") for temp_info in info_list: if temp_info['name'] == search_name: print("查询到的信息如下:") print("name:%s, tel:%s, QQ:%s" % (temp_info['name'], temp_info['tel'], temp_info['qq'])) break else: print("没有您要找的信息....") def print_all_info(): """遍历学生信息""" print("序号 姓名 手机号 QQ") i = 0 for temp in info_list: # temp是一个字典 print("%d %s %s %s" % (i, temp['name'], temp['tel'], temp['qq'])) i += 1 def main(): """用来控制整个流程""" while True: # 1. 打印功能 print_menu() # 2. 获取用户的选择 num = input("请输入要进行的操作(数字)") # 3. 根据用户选择,做相应的事情 if num == "1": # 添加学生 add_new_info() elif num == "2": # 删除学生 del_info() elif num == "3": # 修改学生 modify_info() elif num == "4": # 查询学生 search_info() elif num == "5": # 遍历所有的信息 print_all_info() elif num == "6": # 退出系统 exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ") if exit_flag == "yes": break else: print("输入有误,请重新输入......") input(" 按回车键继续....") os.system("clear") # 调用Linux命令clear完成清屏 # 程序的开始 main()
例子:
学生管理系统分析
# 每个学生的信息 (名字 年龄) # 小明 20 # 小红 19 # 基本数据类型 pass # list dict # 保存数据类型为list # all_list = [{"name": "小明", "age": 20}, {"name": "小红", "age": 19}] # 删除 # 引导用户输入学生的名字 -> 小明 # for i, dict in enumerate(all_list): # if "小明" in dict.values(): # # 最终的方案: all_dict = {"小明": {"name": "小明", "age": 20}, "小红": {"name": "小红", "age": 19}} if "小明" in all_dict: del all_dict["小明"]
学生管理系统实现:
# 公共函数 def get_name(desc): return input("请输入需要%s信息的名字:" % desc) # 定义一个字典 保存所有学生的信息 all_dict = {"小明": {"name": "小明", "age": "20"}, "小红": {"name": "小红", "age": "19"}} print(" 学生管理系统 V1.0") print(" 1:添加学生") print(" 2:删除学生") print(" 3:修改学生") print(" 4:查询学生") print(" 5:显示所有学生") index = input("请选择:") #all_dict = {"小明": {"name": "小明", "age": 20}, "小红": {"name": "小红", "age": 19}} # 判断 # 1:添加学生 if index == "1": # 引导用户输入名字和年龄 my_name = input("请输入您的名字:") my_age = input("请输入您的年龄:") # 构造内部字典 my_dict = {"name": my_name, "age": my_age} # 保存数据 all_dict[my_name] = my_dict print("保存数据成功...") # 2:删除学生 elif index == "2": # 引导用户输入 # my_name = input("请输入需要删除信息的名字:") my_name = get_name("删除") # 判断 if my_name in all_dict: # 删除键值对 del all_dict[my_name] print("删除数据成功...") else: print("您输入的名字有误!!!") # 3:修改学生 elif index == "3": # 引导用户 # my_name = input("请输入需要修改信息的名字:") my_name = get_name("修改") if my_name in all_dict: # 引导用户输入新的年龄 my_age = input("请输入您新的年龄:") all_dict[my_name]["age"] = my_age print("修改数据成功...") else: print("您输入的名字有误!!!") # 4:查询学生 elif index == "4": # 引导用户 # my_name = input("请输入需要查询信息的名字:") my_name = get_name("查询") if my_name in all_dict: print("姓名:%s" % my_name) print("年龄:%s" % all_dict[my_name]["age"]) else: print("您输入的名字有误!!!") # 5:显示所有学生 elif index == "5": for k, v in all_dict.items(): print("姓名:%s" % k) print("年龄:%s" % v["age"]) print("-"*30) print(all_dict)