while 1:
# TODO 显示功能菜单
# 提示用户输入
operate_str = input("请选择操作功能")
print("您选择的操作是【%s】" % operate_str)
# 判断选择分支
if operate_str == "0":
print("感谢您的使用,祝您生活愉快")
break
elif operate_str == "1":
pass
elif operate_str == "2":
pass
elif operate_str == "3":
pass
else:
print("输入错误,请重新输入")
continue
def show_menu():
"展示名片管理系统主菜单"
print('*' * 50)
print("欢迎使用【名片管理系统】")
print("1. 新建名片")
print("2. 显示全部")
print("3. 查询名片")
print("")
print("0. 退出系统")
print('*' * 50)
def create_card():
"新增名片"
print("-"*50)
print("新增名片")
def show_total():
"显示所有名片"
print("-"*50)
print("显示所有名片")
def select_card():
"查看名片"
print("-"*50)
print("查看名片")
def create_card():
"新增名片"
print("-"*50)
print("新增名片")
# 提示用户输入
name_value = input("请输入姓名: ")
tel_value = input("请输入电话: ")
qq_value = input("请输入QQ号码: ")
email_value = input("请输入电子邮箱: ")
card_dict = {
"name": name_value,
"tel": tel_value,
"qq": qq_value,
"email": email_value
}
cards_list.append(card_dict)
print("添加%s的名片成功!" % card_dict["name"])
def show_total():
"显示所有名片"
print("-"*50)
print("显示所有名片")
print("")
print("姓名\t\t电话\t\tQQ号码\t\t电子邮箱")
print("-"*50)
for card_dict in cards_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["tel"], card_dict["qq"], card_dict["email"]))
\t
重复输入,所以可以采取另一种方法,就是循环。但具体哪种简便,看实际需求。def show_total():
"显示所有名片"
if cards_list:
print("-"*50)
print("显示所有名片")
print("")
print("姓名\t\t电话\t\tQQ号码\t\t电子邮箱")
print("-"*50)
for card_dict in cards_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["tel"], card_dict["qq"], card_dict["email"]))
else:
print("!!!名片列表中暂无数据!!!")
def select_card():
"查看名片"
print("-"*50)
print("查看名片")
print("")
find_name = input("您想查询谁的名片信息?")
for card_dict in cards_list:
if find_name == card_dict["name"]:
print("姓名\t\t电话\t\tQQ号码\t\t电子邮箱")
print("-"*50)
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["tel"], card_dict["qq"], card_dict["email"]))
# TODO 一个后续三选一的函数
break
else:
print("对不起,名片不存在")
alter_or_delete(card_dict)
def alter_or_delete(find_card):
aod = input("想对这个名片执行什么操作? "
"【1】修改/ 【2】删除/ 【其它任意值】 返回上级菜单")
# 只要退出这个函数,就会返回引用这个函数的位置,从而返回主菜单
if aod == "1":
alter_card(find_card)
elif aod == "2":
delete_card(find_card)
def alter_card(find_card):
"修改名片"
print("-"*50)
print("修改名片")
print("")
find_card["name"] = input("请输入要修改的名字")
find_card["tel"] = input("请输入要修改的电话")
find_card["qq"] = input("请输入要修改的QQ号码")
find_card["email"] = input("请输入要修改的电子邮箱")
print("修改名片成功")
def sup_input(dict_value,hint):
"一个超级的输入函数,如果输入的是空值,返回字典中的原值"
user_input = input("%s" % hint)
if user_input: # 利用布尔值
return user_input # 返回输入的值
else:
return dict_value # 返回字典原有的值
def alter_card(find_card):
"修改名片"
print("-"*50)
print("修改名片")
print("")
find_card["name"] = sup_input(find_card["name"], "请输入要修改的名字(不更改直接使用回车)")
find_card["tel"] = sup_input(find_card["name"], "请输入要修改的电话(不更改直接使用回车)")
find_card["qq"] = sup_input(find_card["name"], "请输入要修改的QQ号码(不更改直接使用回车)")
find_card["email"] = sup_input(find_card["name"], "请输入要修改的电子邮箱(不更改直接使用回车)")
print("修改名片成功")
def delete_card(find_card):
"删除名片"
print("-"*50)
print("删除名片")
print("")
cards_list.remove(find_card)
print("删除名片成功!")
#!
这个符号叫shebang,或者she-bang#!
指定解释器完整路径即可#! 解释器绝对路径
import cards_tools as tool # 通过取别名,来让整体代码更简洁
while 1:
tool.show_menu()
# 提示用户输入
operate_str = input("请选择操作功能")
print("您选择的操作是【%s】" % operate_str)
# 判断选择分支
if operate_str == "0":
print("感谢您的使用,祝您生活愉快")
break
elif operate_str == "1":
tool.create_card()
elif operate_str == "2":
tool.show_total()
elif operate_str == "3":
tool.select_card()
else:
print("输入错误,请重新输入")
continue
cards_list = [
{"name": "消防", "tel": "119", "qq": "119119", "email": "[email protected]"},
{"name": "警局", "tel": "110", "qq": "110110", "email": "[email protected]"},
{"name": "医院", "tel": "121", "qq": "120120", "email": "[email protected]"}
]
def show_menu():
"展示名片管理系统主菜单"
print('*' * 50)
print("欢迎使用【名片管理系统】V 1.0")
print("1. 新建名片")
print("2. 显示全部")
print("3. 查询名片")
print("")
print("0. 退出系统")
print('*' * 50)
def create_card():
"新增名片"
print("-"*50)
print("新增名片")
print("")
# 提示用户输入
name_value = input("请输入姓名: ")
tel_value = input("请输入电话: ")
qq_value = input("请输入QQ号码: ")
email_value = input("请输入电子邮箱: ")
card_dict = {
"name": name_value,
"tel": tel_value,
"qq": qq_value,
"email": email_value
}
cards_list.append(card_dict)
print("添加%s的名片成功!" % card_dict["name"])
def show_total():
"显示所有名片"
if cards_list:
print("-"*50)
print("显示所有名片")
print("")
print("姓名\t\t电话\t\tQQ号码\t\t电子邮箱")
print("-"*50)
for card_dict in cards_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["tel"], card_dict["qq"], card_dict["email"]))
else:
print("!!!名片列表中暂无数据!!!")
def select_card():
"查看名片"
print("-"*50)
print("查看名片")
print("")
find_name = input("您想查询谁的名片信息?")
for card_dict in cards_list:
if find_name == card_dict["name"]:
print("姓名\t\t电话\t\tQQ号码\t\t电子邮箱")
print("-"*50)
print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["tel"], card_dict["qq"], card_dict["email"]))
alter_or_delete(card_dict) # 使用一个函数,执行后续操作
break
else:
print("对不起,名片不存在")
def alter_or_delete(find_card):
"""查询名片后续操作,修改或删除
:param find_card: 查找到的字典
"""
aod = input("想对这个名片执行什么操作? "
"【1】修改/ 【2】删除/ 【其它任意值】 返回上级菜单")
# 只要退出这个函数,就会返回引用这个函数的位置,从而返回主菜单
if aod == "1":
alter_card(find_card)
elif aod == "2":
delete_card(find_card)
def alter_card(find_card):
"""修改名片
:param find_card: 查找到的字典
"""
print("-"*50)
print("修改名片")
print("")
find_card["name"] = sup_input(find_card["name"], "请输入要修改的名字(不更改直接使用回车)")
find_card["tel"] = sup_input(find_card["name"], "请输入要修改的电话(不更改直接使用回车)")
find_card["qq"] = sup_input(find_card["name"], "请输入要修改的QQ号码(不更改直接使用回车)")
find_card["email"] = sup_input(find_card["name"], "请输入要修改的电子邮箱(不更改直接使用回车)")
print("修改名片成功")
def delete_card(find_card):
"""删除名片
:param find_card: 查找到的字典
"""
print("-"*50)
print("删除名片")
print("")
cards_list.remove(find_card)
print("删除名片成功!")
def sup_input(dict_value, hint):
"""超级输入:不输入返回字典原值,输入直接返回
:param dict_value: 字典原值
:param hint: 提示信息
:return: 字典原值/直接返回
"""
user_input = input("%s" % hint)
if user_input: # 利用布尔值
return user_input # 返回输入的值
else:
return dict_value # 返回字典原有的值