基于python语言的名片管理系统
目的:
检查关于python基础语法的掌握度
功能:
增删改查 亮点自行体验
小结:
对列表、字典之间转换后的遍历内容不够熟练
对各类循环的终止条件掌握不够
细节的疏忽
代码的美观度
card_main.py
# 程序的入口
# 每一次启动都通过该程序
# 1.新建名片
# 2.显示全部
# 3.修改名片
# 0.退出名片
import card_tools
while True:
card_tools.show_menu()
action = input("请输入操作功能:")
print("您的选择是:%s" % action)
if action in ["1","2","3"]:
#pass仅占位,不执行操作,功能为保证代码结构的正确
#pass
#根据输入的123执行相应的功能
if action == "1":
card_tools.new_card()
if action == "3":
card_tools.search_card()
if action == "2":
card_tools.show_all()
elif action == "0":
print("欢迎再次使用<名片管理系统>")
break
else:
print("输入错误,请重新输入")
card_tools.py
import card_input
card_list = []
def show_menu():
"""
显示菜单
:return:
"""
#pass
#构建进入界面
print("*"*50)
print("欢迎使用<名片管理系统>")
print("请选择您想执行的操作:\n"
"0.退出系统\n"
"1.新建名片\n"
"2.显示全部\n"
"3.查询名片")
print("*"*50)
def new_card():
"""
新建名片
:return:
"""
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_dict)
print("成功添加%s的名片" %card_dict["name"])
def show_all():
"""显示全部
"""
#遍历card字典
print("-"*50)
print("功能:显示全部e")
#若不存在名片
if len(card_list) == 0:
print("无名片")
return
#空 return表返回 不执行后续代码
# #转化为list 字典类型遍历输出只输出key不输出value
# for card_dirt in card_list:
# print(card_dirt)
# 格式不齐
for name in ["姓名:","电话:","QQ:","电子邮箱:"]:
print(name,end="\t\t")
print()
print("="*50)
for card_dirt in card_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dirt["name"],
card_dirt["phone"],
card_dirt["qq"],
card_dirt["email"]))
def search_card():
"""显示名片
"""
print("-"*50)
print("功能:搜索名片")
find_name = input("请输入想查找的姓名:")
for card_dirt in card_list:
if card_dirt["name"] == find_name:
print("姓名\t\t电话\t\tQQ\t\t电子邮箱")
print("%s\t\t%s\t\t%s\t\t%s" % (card_dirt["name"],
card_dirt["phone"],
card_dirt["qq"],
card_dirt["email"]))
deal_card(card_dirt)
print("#"*50)
break
else:
print("未找到%s" %find_name)
def deal_card(find_dict):
'''
修改已查找到的名片
:param find_dict: 找到名片的字典
:return:
'''
print(find_dict)
action_str = input("请输入您需要执行的操作:\n【0】修改 【1】删除\n"
"输入【quit】退出")
while(action_str != "quit"):
if(action_str == "0"):
print("您选择的是修改")
find_dict["name"] = card_input.input_card_info(find_dict["name"],"修改姓名,"
"回车不修改")
find_dict["phone"] = card_input.input_card_info(find_dict["phone"],"修改电话,"
"回车不修改")
find_dict["qq"] = card_input.input_card_info(find_dict["qq"],"修改QQ,"
"回车不修改")
find_dict["email"] = card_input.input_card_info(find_dict["email"],"修改电子邮箱,"
"回车不修改")
print("%s的名片修改成功" % find_dict)
elif(action_str == "1"):
print("您选择的是删除")
card_list.remove(find_dict)
else:
print("输入错误,请重新输入")
break
card_input.py
def input_card_info(dict_value, tip_message):
"""输入名片信息
:param dict_value: 字典中原有的值
:param tip_message: 输入的提示文字
:return: 如果用户输入了内容,就返回内容,否则返回字典中原有的值
"""
# 1. 提示用户输入内容
result_str = input(tip_message)
# 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
if len(result_str) > 0:
return result_str
# 3. 如果用户没有输入内容,返回 `字典中原有的值`
else:
return dict_value