需求
- 程序启动,显示欢迎界面和功能菜单
- 以数字选择不同功能
- 根据选择,执行不同功能
- 名片需要记录用户:姓名、电话、qq、邮箱
- 查询指定的名片,用户可选择删除或修改
- 使Python程序直接能运行
显示界面如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/87c70dda65764fda8e2e9077c0864492.png)
搭建框架
目标: 1、准备文件,创建文件名;2、编写主循环,实现基本的用户输入、判断
步骤:
1、 新建cards_main.py文件,保存主程序功能代码
2、 新建cards_tools.py文件,保存功能函数代码 3、 用户输入判断
action_str = input("请选择操作:")
print("选择是【%s】" % action_str)
if action_str in ["1","2","3"]:
pass
elif action_str == "0":
pass
else:
print("输入错误,重选")
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd33d61fc709440297ad3ad3b5d4a276.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_7,color_FFFFFF,t_70,g_se,x_16) 执行: ![在这里插入图片描述](https://img-blog.csdnimg.cn/0954725b5c5444b886c4d5789f6e8ee6.png) 报错处理:不是期望的值,可能代码错误,但是代码并没错误 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b164f72f8e604c03b41aca84b2d02a15.png) 解决:原来,以这种形式执行,需要声明运行环境,否则,它会以默认环境运行,不匹配Python3的代码。
4、 保证无限循环(必须对齐)
while True:
action_str = input("请选择操作:")
print("选择是【%s】" % action_str)
if action_str in ["1","2","3"]:
pass
elif action_str == "0":
print("欢迎下次使用")
break
else:
print("输入错误,重选")
![在这里插入图片描述](https://img-blog.csdnimg.cn/be1479555d5142f5b9d78678abc8f6cf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_8,color_FFFFFF,t_70,g_se,x_16) 验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/e3ffd35b38c64e55ba299d36e570cb29.png) 5、判断用户操作,预留代码位置
增加代码:
![在这里插入图片描述](https://img-blog.csdnimg.cn/bdeb7f16d4c547f786be0eb1e59fba2e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_8,color_FFFFFF,t_70,g_se,x_16)
while True:
action_str = input("请选择操作:")
print("选择是【%s】" % action_str)
if action_str in ["1","2","3"]:
if action_str == "1":
pass
elif action_str == "2":
pass
elif action_str == "3":
pass
elif action_str == "0":
print("欢迎下次使用")
break
else:
print("输入错误,重选")
执行代码:和之前一样,只不过断点调试,可以看到代码会跳到不同位置。
6、显示欢迎界面
创建cards_tools.py文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/17d6829847ff4374b01b4867de930185.png) 添加以下函数代码: ![在这里插入图片描述](https://img-blog.csdnimg.cn/9bf01178045040c7b1d7ba5e56a8643f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_7,color_FFFFFF,t_70,g_se,x_16)
def show_menu():
"""显示菜单"""
print("*" * 50)
print("欢迎使用【名片系统】V 9.9")
print("")
print("1.新增名片")
print("2.显示全部")
print("3.搜索名片")
print("")
print("0.退出系统")
print("*" * 50)
编辑主程序文件:添加绿色区域,两行代码 vim cards_main.py ![在这里插入图片描述](https://img-blog.csdnimg.cn/c1dc52ee12754e3fa282384c8549adb6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_8,color_FFFFFF,t_70,g_se,x_16)
import cards_tools
while True:
cards_tools.show_menu()
action_str = input("请选择操作:")
print("选择是【%s】" % action_str)
if action_str in ["1","2","3"]:
if action_str == "1":
pass
elif action_str == "2":
pass
elif action_str == "3":
pass
elif action_str == "0":
print("欢迎下次使用")
break
else:
print("输入错误,重选")
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/8e50530cde1e426d8460882e705050f6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_9,color_FFFFFF,t_70,g_se,x_16) 7、准备名片操作函数并修改主文件调用函数 vim cards_tools.py 新增三种函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/8dbd08df183f4dc49994299f78c19e9c.png)
def show_menu():
"""显示菜单"""
print("*" * 50)
print("欢迎使用【名片系统】V 9.9")
print("")
print("1.新增名片")
print("2.显示全部")
print("3.搜索名片")
print("")
print("0.退出系统")
print("*" * 50)
def new_card():
"""新增名片"""
print("-" * 50)
print("新增名片")
def show_all():
"""显示全部"""
print("-" * 50)
print("显示全部")
def search_card():
"""搜索名片"""
print("-" * 50)
print("搜索名片")
vim cards_main.py ![在这里插入图片描述](https://img-blog.csdnimg.cn/1cdaefac2c3647b69e79c363a7b45c7c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_7,color_FFFFFF,t_70,g_se,x_16)
import cards_tools
while True:
cards_tools.show_menu()
action_str = input("请选择操作:")
print("选择是【%s】" % action_str)
if action_str in ["1","2","3"]:
if action_str == "1":
cards_tools.new_card()
elif action_str == "2":
cards_tools.show_all()
elif action_str == "3":
cards_tools.search_card()
elif action_str == "0":
print("欢迎下次使用")
break
else:
print("输入错误,重选")
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/f6c2c07707bc4b81a58385740fea557d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_9,color_FFFFFF,t_70,g_se,x_16)
保存数据的结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/0df695de38ba40f589045ee83aed5961.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16)
分析:使用字典记录每张名片的详细信息;列表统一记录所有名片字典
vim cards_tools.py 添加一行代码即可 ![在这里插入图片描述](https://img-blog.csdnimg.cn/356b15810ade4e91b03b81d09519717c.png)
定义功能
1、 新增名片功能 vim cards_tools.py ![在这里插入图片描述](https://img-blog.csdnimg.cn/3f2d0e7e84764bd19ef0a5d7cdc71564.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_6,color_FFFFFF,t_70,g_se,x_16)
def show_menu():
"""显示菜单"""
print("*" * 50)
print("欢迎使用【名片系统】V 9.9")
print("")
print("1.新增名片")
print("2.显示全部")
print("3.搜索名片")
print("")
print("0.退出系统")
print("*" * 50)
def new_card():
"""新增名片"""
print("-" * 50)
print("新增名片")
name = input("请输入姓名:")
phone = input("请输入电话:")
qq = input("请输入QQ:")
email = input("请输入邮箱:")
card_dict = {"name": name,
"phone": phone,
"qq": qq,
"email": email}
card_list.append(card_dict)
print(card_list)
print("添加 %s 的名片成功!" % name)
def show_all():
"""显示全部"""
print("-" * 50)
print("显示全部")
def search_card():
"""搜索名片"""
print("-" * 50)
print("搜索名片")
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2e58aed06c21401fa7d9c2556afef0a5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_11,color_FFFFFF,t_70,g_se,x_16) 2、代码优化(字典中键与值名称,相同不好区分,我们给值的变量后加str) ![在这里插入图片描述](https://img-blog.csdnimg.cn/dc3680a47d244f6390e3473f8f32a524.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_7,color_FFFFFF,t_70,g_se,x_16)
3、 显示全部 vim cards_tools.py ![在这里插入图片描述](https://img-blog.csdnimg.cn/4fb78c7032044150a5878ee307bc728a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_12,color_FFFFFF,t_70,g_se,x_16) 验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/4f6d2586af994f6e8e07da13b4d48c74.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 4、判断是否存在名片记录,没有,提示用户并返回 vim cards_tools.py ![在这里插入图片描述](https://img-blog.csdnimg.cn/0528a9115fb645bd9d25b45cbee67515.png)
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/749a8efa343f4f9da9beafd1d41e88d0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_9,color_FFFFFF,t_70,g_se,x_16) 5、查询名片功能实现 ![在这里插入图片描述](https://img-blog.csdnimg.cn/694318abf81d460eaa09f76a542b406c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_13,color_FFFFFF,t_70,g_se,x_16)
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/cc84b154e1464c49a797123e5f2b65da.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_9,color_FFFFFF,t_70,g_se,x_16) 6、准备处理名片函数(定义处理函数) ![在这里插入图片描述](https://img-blog.csdnimg.cn/f015bfb924824618afe6598d19ec4715.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_13,color_FFFFFF,t_70,g_se,x_16) 7、增加分支判断用户操作类型 ![在这里插入图片描述](https://img-blog.csdnimg.cn/691adfca6d5c4b0f9aeab62d7bc47531.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/b2880bd396ac422588171faff88b233e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 8、删除名片
![在这里插入图片描述](https://img-blog.csdnimg.cn/6220f9232e9449d19d14feb21b55bc4e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16)
验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/aff20478de044007b12ebe32549c2faf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 9、修改名片 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ec752892bbec474593b8699b73ad659a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_11,color_FFFFFF,t_70,g_se,x_16) 验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/d3687836903c43ff9064875c719deec4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 10、优化修改名片功能,添加“回车不修改功能”
![在这里插入图片描述](https://img-blog.csdnimg.cn/e198b2bac90d4d2ca5348460b948899b.png) 验证: ![在这里插入图片描述](https://img-blog.csdnimg.cn/a32fdf7bb0db46448f253acd90ab39da.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_10,color_FFFFFF,t_70,g_se,x_16) 11、增加注释 ![在这里插入图片描述](https://img-blog.csdnimg.cn/34f414a7d605417095046b618549005e.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/9d596447ac754a21869790702fd5dc3c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARnJpZW5kcyBvZiB0aGUgd2luZA==,size_13,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2be7f07af200492ea562fed15ca686ea.png)
总结
1.注意格式必须正确 2.适当增加注释,利于优化与排错 3.全部代码上传到了CSDNPython名片管理系统代码
|