需求
- 程序启动,显示欢迎界面和功能菜单
- 以数字选择不同功能
- 根据选择,执行不同功能
- 名片需要记录用户:姓名、电话、qq、邮箱
- 查询指定的名片,用户可选择删除或修改
- 使Python程序直接能运行
显示界面如下图: 
搭建框架
目标: 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("输入错误,重选")
 执行:  报错处理:不是期望的值,可能代码错误,但是代码并没错误  解决:原来,以这种形式执行,需要声明运行环境,否则,它会以默认环境运行,不匹配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("输入错误,重选")
 验证:  5、判断用户操作,预留代码位置
增加代码:

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文件  添加以下函数代码: 
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 
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("输入错误,重选")
验证:  7、准备名片操作函数并修改主文件调用函数 vim cards_tools.py 新增三种函数

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 
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("输入错误,重选")
验证: 
保存数据的结构

分析:使用字典记录每张名片的详细信息;列表统一记录所有名片字典
vim cards_tools.py 添加一行代码即可 
定义功能
1、 新增名片功能 vim cards_tools.py 
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("搜索名片")
验证:  2、代码优化(字典中键与值名称,相同不好区分,我们给值的变量后加str) 
3、 显示全部 vim cards_tools.py  验证:  4、判断是否存在名片记录,没有,提示用户并返回 vim cards_tools.py 
验证:  5、查询名片功能实现 
验证:  6、准备处理名片函数(定义处理函数)  7、增加分支判断用户操作类型  验证:  8、删除名片

验证:  9、修改名片  验证:  10、优化修改名片功能,添加“回车不修改功能”
 验证:  11、增加注释  

总结
1.注意格式必须正确 2.适当增加注释,利于优化与排错 3.全部代码上传到了CSDNPython名片管理系统代码
|