知识点:
- 变量
- 流程控制
- 函数
- 模块
目标:
开发名片管理系统
系统需求:
- 1.启动程序,显示名片管理系统界面,并显示菜单功能
*******************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
*******************************************
- 2.用户用数字选择不同功能
- 3.根据功能选择,执行不同的功能
- 4.用户名片需记录用户的姓名、电话、QQ、邮箱
- 5.如果查询到指定的名片,用户可以选择修改或者删除名片
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("输入错误,请重新输入。")
字符串判断的两种方式:
if action_str in ["1", "2", "3"]:
if action_str == "1" or action_str == "2" or action_str == "3"
使用in针对列表判断,避免使用or拼接复杂的逻辑条件
没有用int转换用户输入,可以避免用户输入的不是数字,导致程序运行出错
pass
- pass是一个空语句,一般用做站位语句
- 为了保证结构完整性
- 使用字典记录每一张名片的详细信息
- 使用列表记录所有的名片字典
定义名片列表变量
# 所有名片记录的列表
card_list = []
**注意:**所有名片相关操作都需要使用这个列表,所以应该定义在程序的顶部。
主程序功能代码:card_main.py
import card_tools
while True:
# 显示功能菜单
card_tools.show_menu()
action_str = input("请选择希望执行的操作:")
print("您选择的操作是:【%s】" % action_str)
if action_str in ["1", "2", "3"]:
# 新增名片
if action_str == "1":
card_tools.add_card()
# 显示名片
elif action_str == "2":
card_tools.show_all()
# 查询名片
elif action_str == "3":
card_tools.search_card()
elif action_str == "0":
print("欢迎再次使用【名片管理系统】")
break
else:
print("输入错误,请重新输入。")
对名片的增删改查操作:card_tools.py
# 所有名片记录的列表
card_list = []
显示菜单
def show_menu():
print("\t")
print("*" * 40)
print("欢迎使用【名片管理系统】V1.0")
print("1.新增名片")
print("2.显示名片")
print("3.搜索名片")
print("0.退出系统")
print("*" * 40)
print("\t")
新增名片
def add_card():
print("\t")
print("-" * 40)
print("新增名片")
# 1.提示用户输入名片的详细信息
name_str = input("请输入姓名:")
phone_str = input("请输入电话:")
qq_str = input("请输入QQ号码:")
email_str = input("请输入邮箱:")
# 2.使用输入的信息建立一个名片字典
card_dict = {"name": name_str,
"phone": phone_str,
"qq": qq_str,
"Email": email_str}
# 3.将名片字典添加到列表中
card_list.append(card_dict)
print(card_list)
# 4.提示用户添加成功
print("成功添加%s的名片" % name_str)
显示所有名片
def show_all():
print("\t")
print("-" * 40)
print("显示所有名片")
# 判断是否存在记录,如果没有提示用户返回
if len(card_list) == 0:
print("当前没有任何名片记录。")
return # return:不执行后续代码,返回调用函数的位置
# 打印表头
for name in ["姓名", "电话", "qq", "邮箱"]:
print(name, end="\t\t\t")
print()
print("=" * 40)
# 遍历名片列表,依次循环输出
for card_dict in card_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["Email"]))
print()
搜索名片
def search_card():
"""搜索名片"""
print("\t")
print("-" * 40)
print("搜索名片")
# 1.提示用户要搜索的姓名
find_name = input("请输入需要查询的用户姓名:")
# 2.遍历名片列表,查询要搜索的姓名,没有找到需要提示用户
for card_dict in card_list:
if card_dict["name"] == find_name:
print("姓名\t\t电话\t\tQQ\t\t邮箱")
print("=" * 40)
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["Email"]))
# 针对找到的名片进行修改或删除的操作
deal_card(card_dict)
break
else:
print("没有找到 %s" % find_name)
处理名片
def deal_card(find_card: object) -> object:
print(find_card)
action_str = input("请选择需要执行的操作:"
"[1]修改 [2]删除 [3]返回")
if action_str == "1":
find_card["name"] = input_card_info(find_card["name"], "姓名:")
find_card["phone"] = input_card_info(find_card["phone"], "电话:")
find_card["qq"] = input_card_info(find_card["qq"], "QQ:")
find_card["Email"] = input_card_info(find_card["Email"], "邮箱:")
print("名片修改成功。")
elif action_str == "2":
card_list.remove(find_card)
print("名片删除成功。")
输入名片信息
def input_card_info(dict_value, tip_message):
# 1.提示用户输入内容分
result_str = input(tip_message)
# 2.针对输入判断:如果用户输入内容,直接返回结果
if len(result_str) > 0:
return result_str
# 3.如果用户没有输入内容,返回字典中原有的值
else:
return dict_value
运行结果
添加名片
显示所有名片信息
搜索名片&修改名片
删除名片