名片管理系统是一个检验Python初学者入门的实战小项目,它覆盖了Python程序设计的一些基础知识,其中包括有模块、输入/输出、while语句、if…elif…else语句、for循环语句、占位符/制表符、列表和字典等知识点。
功能描述
1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单,如下:
2. 用户选择不同数字进入与数字对应的功能
3. 根据功能选择,执行不同的功能
4. 名片需要记录用户的姓名、电话、QQ、邮件
5. 查询指定的名片,用户可以修改和删除名片
问题分析
准备两个文件,一个是cards_main.py保存主程序功能代码,它是程序的入口,另一个是cards_tools.py保存所有名片功能函数,对名片进行新增、显示、查询、修改、删除等功能操作。
主程序:cards_main.py
from card_manage_system import cards_tools while True: cards_tools.show_menu() action = input("请输入操作功能:") print("你输入的操作是:%s"%action) if action in ["1","2","3"]: if action == "1": cards_tools.new_card() elif action == "2": cards_tools.show_all() elif action == "3": cards_tools.search_card() elif action == "0": print("退出系统,欢迎下次使用名片管理系统") break else: print("输入错误,请重新输入")
名片功能函数:cards_tools.py
此模块包含show_menu()、new_card()、show_all()、search_card()、deal_card()、input_card_info()等六个不同的功能函数。以下是源代码:
card_list = [] def show_menu(): '''显示菜单''' print("*"*60) print("欢迎使用【名片管理系统】V1.0") print("1. 新建名片") print("2. 显示全部") print("3. 查询名片") print("0. 退出系统") print("*"*60) def new_card(): '''新建名片''' # 1.提示用户输入名片信息 name = input("请输入你的姓名:") number = int(input("请输入你的手机号码:")) QQnumber = int(input("请输入你的QQ号码:")) email = input("请输入你的邮箱;") # 2.使用用户输入的信息建立一个名片字典 card_dict = {"name":name,"phonenumber":number,"QQnumber":QQnumber,"email":email} # 3.将名片字典添加到列表中 card_list.append(card_dict) # 4.提示用户名片添加成功 print("添加%s的名片成功"%name) def show_all(): '''显示全部名片 ''' print('*'*60) print('显示所有名片') # 判断列表中是否存在名片,如果没有,提示用户并返回 if len(card_list) == 0: print("名片系统中没有名片") return # 打印表头 print("姓名\t\t手机号码\t\tQQ号码\t\t邮箱") # 遍历名片列表依次输出字典信息 for card_dict in card_list: print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) def search_card(): '''查找名片''' # 1.提示用户输入要搜索的姓名 find_name = input("请输入你要查找的名片:") # 2.遍历名片列表,查询要搜索的姓名,如果没有搜索到,提示给用户 for card_dict in card_list: if card_dict["name"] == find_name: for name in ["姓名","手机号码","QQ号码","邮箱"]: print(name,end="\t\t") print("") print("-"*60) print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) print("-"*60) deal_card(card_dict) break else: print("没有找到%s的名片"%find_name) def deal_card(find_dict): '''操作搜索到的名片''' print(find_dict) action_str = input("请选择要执行的操作【1】修改【2】删除") # 替换已经存在的键值对 if action_str == "1": find_dict["name"] = input_card_info(find_dict['name'],'姓名:') find_dict["phonenumber"] = input_card_info(find_dict['phonenumber'],'电话:') find_dict["QQnumber"] = input_card_info(find_dict['QQnumber'],'QQ:') find_dict["email"] = input_card_info(find_dict['email'],'邮箱:') print("%s的名片修改成功"%find_dict) elif action_str == "2": card_list.remove(find_dict) print("删除成功") def input_card_info(dict_value,tip_message): # 1.提示用户出入内容 result_str = input(tip_message) # 2.如果用户输入内容,则返回输入值,否则返回字典值 if len(result_str) > 0: return result_str else: return dict_value
参考文献
“❤️万字【Python基础】保姆式教学❤️,小白快速入门Python!”一文中综合性练手项目_退休的龙叔
Python名片管理系统_新海说
基于python下的综合名片管理系统_Logbook怪