day 4 名片管理系统 -函数版
修改没有用函数的程序
具有独立功能的代码块
源程序
#1.打印功能信息 print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统") print("*"*50) #定义一个新的list列表,用来存储名片 card_infors = [] while True: #2.获取用户的输入 num = int(input("请输入你要的功能:")) #3.根据用户的输入,执行相应的功能 if num == 1: new_name = input("你要添加的姓名:") new_age = input("你要添加的年龄:") new_qq = input("你要添加的qq:") new_addr = input("你要添加的地址:") #定义1个新的字典dict,用来存储新的名片 new_infor = {} new_infor["name"] = new_name new_infor["age"] = new_age new_infor["qq"] = new_qq new_infor["addr"] = new_addr #将1个字典dict添加到列表list card_infors.append(new_infor) #print(card_infors) #for test 测试用的 elif num == 2: pass elif num == 3: pass elif num == 4: find_name = input("请输入你要查询的名字:") flag = 0 #默认 没有查到此人 for tmp in card_infors: if find_name in tmp["name"]: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) flag = 1 #表示查到此人了 break #判断是否找到了 if flag == 0: print("查无此人") elif num == 5: print("姓名\t年龄\tqq号\t地址") for tmp in card_infors: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) elif num == 6: break else: print("你输入的有误,请重新输入") print("")
1.版本1:打印菜单功能
刚开始写程序一刹那就用函数
改一点,实验一下
def print_menu(): print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统") print("*"*50) # 1.打印功能信息 print_menu() #定义一个新的list列表,用来存储名片 card_infors = [] while True: #2.获取用户的输入 num = int(input("请输入你要的功能:")) #3.根据用户的输入,执行相应的功能 if num == 1: new_name = input("你要添加的姓名:") new_age = input("你要添加的年龄:") new_qq = input("你要添加的qq:") new_addr = input("你要添加的地址:") #定义1个新的字典dict,用来存储新的名片 new_infor = {} new_infor["name"] = new_name new_infor["age"] = new_age new_infor["qq"] = new_qq new_infor["addr"] = new_addr #将1个字典dict添加到列表list card_infors.append(new_infor) #print(card_infors) #for test 测试用的 elif num == 2: pass elif num == 3: pass elif num == 4: find_name = input("请输入你要查询的名字:") flag = 0 #默认 没有查到此人 for tmp in card_infors: if find_name in tmp["name"]: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) flag = 1 #表示查到此人了 break #判断是否找到了 if flag == 0: print("查无此人") elif num == 5: print("姓名\t年龄\tqq号\t地址") for tmp in card_infors: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) elif num == 6: break else: print("你输入的有误,请重新输入") print("")
2.版本2:
新定义的函数:需不需要参数 ,需要几个
需不需要返回值,需要返回什么样的值
#定义一个新的list列表,用来存储名片 card_infors = [] def print_menu(): print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统") print("*"*50) def add_new_card_infor(): new_name = input("你要添加的姓名:") new_age = input("你要添加的年龄:") new_qq = input("你要添加的qq:") new_addr = input("你要添加的地址:") #定义1个新的字典dict,用来存储新的名片 new_infor = {} new_infor["name"] = new_name new_infor["age"] = new_age new_infor["qq"] = new_qq new_infor["addr"] = new_addr #将1个字典dict添加到列表list global card_infors card_infors.append(new_infor) #print(card_infors) #for test 测试用的 # 1.打印功能信息 print_menu() while True: #2.获取用户的输入 num = int(input("请输入你要的功能:")) #3.根据用户的输入,执行相应的功能 if num == 1: add_new_card_infor() elif num == 2: pass elif num == 3: pass elif num == 4: find_name = input("请输入你要查询的名字:") flag = 0 #默认 没有查到此人 for tmp in card_infors: if find_name in tmp["name"]: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) flag = 1 #表示查到此人了 break #判断是否找到了 if flag == 0: print("查无此人") elif num == 5: print("姓名\t年龄\tqq号\t地址") for tmp in card_infors: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) elif num == 6: break else: print("你输入的有误,请重新输入") print("")
3.函数文档说明
"""函数说明文档,可以写上函数的功能,以防止后面遗忘"""
4.版本3:添加函数说明 文档
#定义一个新的list列表,用来存储名片 card_infors = [] def print_menu(): """完成打印功能""" print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统") print("*"*50) def add_new_card_infor(): """完成添加新名片功能""" new_name = input("你要添加的姓名:") new_age = input("你要添加的年龄:") new_qq = input("你要添加的qq:") new_addr = input("你要添加的地址:") #定义1个新的字典dict,用来存储新的名片 new_infor = {} new_infor["name"] = new_name new_infor["age"] = new_age new_infor["qq"] = new_qq new_infor["addr"] = new_addr #将1个字典dict添加到列表list global card_infors card_infors.append(new_infor) #print(card_infors) #for test 测试用的 def find_card_infor(): """完成查询1个名片的功能""" global card_infors #全局变量一般声明在开头 find_name = input("请输入你要查询的名字:") flag = 0 #默认 没有查到此人 for tmp in card_infors: if find_name in tmp["name"]: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) flag = 1 #表示查到此人了 break #判断是否找到了 if flag == 0: print("查无此人") def show_card_infor(): """完成显示名片""" global card_infors #全局变量一般声明在开头 print("姓名\t年龄\tqq号\t地址") for tmp in card_infors: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) # 1.打印功能信息 print_menu() while True: #2.获取用户的输入 num = int(input("请输入你要的功能:")) #3.根据用户的输入,执行相应的功能 if num == 1: add_new_card_infor() elif num == 2: pass elif num == 3: pass elif num == 4: find_card_infor() elif num == 5: show_card_infor() elif num == 6: break else: print("你输入的有误,请重新输入") print("")
5.版本4.main主函数
#定义一个新的list列表,用来存储名片 card_infors = [] def print_menu(): """完成打印功能""" print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统") print("*"*50) def add_new_card_infor(): """完成添加新名片功能""" new_name = input("你要添加的姓名:") new_age = input("你要添加的年龄:") new_qq = input("你要添加的qq:") new_addr = input("你要添加的地址:") #定义1个新的字典dict,用来存储新的名片 new_infor = {} new_infor["name"] = new_name new_infor["age"] = new_age new_infor["qq"] = new_qq new_infor["addr"] = new_addr #将1个字典dict添加到列表list global card_infors card_infors.append(new_infor) #print(card_infors) #for test 测试用的 def find_card_infor(): """完成查询1个名片的功能""" global card_infors find_name = input("请输入你要查询的名字:") flag = 0 #默认 没有查到此人 for tmp in card_infors: if find_name in tmp["name"]: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) flag = 1 #表示查到此人了 break #判断是否找到了 if flag == 0: print("查无此人") def show_card_infor(): """完成显示名片""" global card_infors print("姓名\t年龄\tqq号\t地址") for tmp in card_infors: print("%s\t%s\t%s\t%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"])) def main(): '''完成对整个程序的控制''' # 1.打印功能信息 print_menu() while True: #2.获取用户的输入 num = int(input("请输入你要的功能:")) #3.根据用户的输入,执行相应的功能 if num == 1: add_new_card_infor() elif num == 2: pass elif num == 3: pass elif num == 4: find_card_infor() elif num == 5: show_card_infor() elif num == 6: break else: print("你输入的有误,请重新输入") print("") #调用主函数 main()
6.主要流程
7.列表和字典可以当做全局变量来用
可以不用global ,但是建议用global
nums = [11,22,33] infor = {"name":"alex"} def test(): #for num in nums: # print(num) nums.append(44) infor["age"] = 18 def test2(): print(nums) print(infor) test() test2()