我们小做一个名片管理系统,首先要确定系统的框架,要实现增删改查的功能,可以定义 1:增加 2:查看 3:查询(并修改)4:退出系统,我们确定了这几项功能,然后我们就可以编写主程序了。
功能列表 | |
---|---|
1 | 新建一个名片 |
2 | 查看所有名片 |
3 | 查询和修改名片 |
4 | 退出程序 |
- while循环用来保持程序持续运行,直到输入“0”退出程序
- 使用dict字典来存储每一个名片的姓名、电话、qq、邮箱
- 使用list列表保存多条字典信息(名片信息)
话不多说直接上程序:
说明:这里的import引入的是我自己封装功能函数 用来实现增删改查的功能,你可以复制下一段代码取名toos 并放入python 文件夹中即可调用。
#这里的import引入的是我自己写的功能函数 用来实现增删改查的功能
import toos
while True:
toos.show_menu()
action_str=input("请选择您希望执行的操作:")
print("您选择的是 %s"%action_str)
if action_str in ["1","2","3"]:
if action_str=="1":
toos.new_card()
elif action_str=="2":
toos.show_all()
elif action_str=="3":
toos.search()
elif action_str =="0":
print("欢迎再次使用【名片管理系统】")
break
#如果在开发程序时,不想立刻写出分支内部的代码,
# 这个时候可以使用pass关键字,pass关键字是一个占位符,
# 他可以保证代码结构正确,程序运行时pass不执行任何操作。
else:
print("您输入的不正确,请重新选择")
功能函数如下:
#记录所有名片字典
card_list=[]
def show_menu():
print("*******************")
print("欢迎进入名片管理系统")
print("1.新建名片")
print("2.显示名片")
print("3.查询名片")
print("0.退出程序")
print("********************")
def new_card():
"""新增名片"""
#1.提示用户输入名片详细信息
name_str=input("请输入用户姓名")
phone_str=input("请输入电话")
qq_str=input("请输入QQ号码")
emile_str=input("请输入邮箱")
#2.把用户输入的名片信息建立一个字典
card_dict = {"name": name_str, "phone": phone_str, "qq": qq_str, "Emile": emile_str}
#3.将字典信息存入到名片列表中
card_list.append(card_dict)
#4.提示用户添加成功
print("添加成功")
def show_all():
print("-" * 50)
"""显示所有名片"""
#判断是否有名片,如果没有提示用户输入名片
if len(card_list)==0:
print("当前没有任何记录请添加名片")
#return 可以返回一个函数返回结果同时下方的代码不会再执行
return
#打印表头
for name in ["姓名","电话","QQ","邮箱"]:
print(name,end="\t\t")
print("")
print("-"*50)
#遍历名片列表,显出字典信息
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["Emile"]))
print("显示名片")
def search():
"""搜索名片"""
find_name=input("请输入您要检索的名片姓名")
for card_dist in card_list:
if card_dist["name"] == find_name:
print("姓名\t\t电话\t\tQQ\t\t邮箱")
print("="*50)
print("%s\t\t%s\t\t%s\t\t%s"%(card_dist["name"],card_dist["phone"],card_dist["qq"],card_dist["Emile"]))
# TODO针对找到的字典进执行修改和删除的操作
deal_card(card_dist)
break
else:
print("对不起没找到")
def deal_card(find_dict):
print("-"*50)
action_str=input("请选择要执行的操作:1/删除 2/修改 0/返回主菜单")
if action_str=="1":
card_list.remove(find_dict)
print("删除名片成功")
elif action_str=="2":
find_dict["name"]=card_input_info(find_dict["name"],"请输入修改后的姓名:")
find_dict["phone"]=card_input_info(find_dict["phone"],"请输入修改后的电话")
find_dict["qq"]=card_input_info(find_dict["qq"],"请输入修改后的QQ号码")
find_dict["Emile"]=card_input_info(find_dict["Emile"],"请输入修改后的邮箱")
print("修改名片成功")
elif action_str=="0":
print("返回主菜单")
def card_input_info(dict_value,tip_massage):
"""
:param dict_value: 字典中原有的值
:param tip_massage:输入的提示文字
:return:如果用户输入了内容,就返回内容,如果没有内容,就返回字典中原有的值
"""
#提示用户输入内容
result_str=input(tip_massage)
#针对用户输入进行判断,如果输入了内容,直接返回结果
if len(result_str)>0:
return result_str
#如果用户没有输入内容,则返回字典中原有的值
else:
return dict_value