# 至少封装成三个函数,并且都将存放名片的列表作为参数传入
# * 一个函数负责添加名片
# * 一个函数负责打印功能
# * 一个函数负责清空功能
def add_card(card_list):
"""添加名片功能"""
# 获取新的名字
new_name = input("请输入姓名:")
new_tel = input("请输入电话:")
new_addr = input("请输入住址:")
# 定义名片字典
new_card = {}
new_card["name"] = new_name
new_card["tel"] = new_tel
new_card["addr"] = new_addr
# 将名片字典追加到名片列表
card_list.append(new_card)
def print_card(card_list):
"""打印名片功能"""
for card in card_list:
print("姓名:%s 电话:%s 住址:%s" % (card["name"], card["tel"], card["addr"]))
def clear_card(card_list):
"""清空名片功能"""
card_list.clear()
def del_card():
# 获取要删除名字
del_name = input("请输入您要删除的姓名")
# 遍历名片列表,判断输入的姓名是否存在
for card in card_list:
if del_name in card.values():
card_list.remove(card)
print("%s 的名片删除成功" % del_name)
break
else:
print("没有找到%s的名片" % del_name)
def modi_card():
# 获取旧名字
old_name = input('请输入旧名字')
# 把旧名字修改为新名字
for card in card_list:
if card["name"] == old_name:
# 获取新名字
new_name = input('请输入新名字:')
card["name"] = new_name
print("%s的名片修改成功" % old_name)
break
else:
print("没有找到您要修改的名字")
def find_card():
# 获取要查找的名字
find_name = input('请输入要查找的名字:')
# 判断名字是否存在
for card in card_list:
if card["name"] == find_name:
print("找到了")
break
else:
print("没有找到")
def main():
while True:
# 1. 打印系统提示
print('=======================')
print('欢迎使用 名片管理系统 v1.0')
print('1.添加名片')
print('2.删除名片')
print('3.修改名片')
print('4.查看名片')
print('5.查看所有名字')
print('6.清空名字')
print('0.退出系统')
print('=======================')
# 2. 获取用户选择
command = input('请输入您的选择:')
# 3. 根据选择进行处理
if command == '1':
add_card(card_list)
elif command == '2':
# "删除"
del_card()
elif command == '3':
# "修改"
modi_card()
elif command == '4':
# "查看"
find_card()
elif command == '5':
print_card(card_list)
elif command == '6':
clear_card(card_list)
elif command == '0':
# "退出"
break
else:
# "不知道什么指令"
print('输入错误,无法识别')
card_list = [] # 存放名片的列表, 必须放在循环外
# 以只读模式打开card.dat文件,把名片列表内容加载到card_list
f = open('card.dat','r')
content = f.read()
f.close()
if len(content) != 0:
file_list = eval(content)
card_list.extend(file_list)
main()
# 以只写模式打开一个文件,用于保存card_list内容
f = open("card.dat",'w')
f.write(str(card_list)) # 写入文件只能以文本方式写入
f.close()
print('程序结束')
# * 一个函数负责添加名片
# * 一个函数负责打印功能
# * 一个函数负责清空功能
def add_card(card_list):
"""添加名片功能"""
# 获取新的名字
new_name = input("请输入姓名:")
new_tel = input("请输入电话:")
new_addr = input("请输入住址:")
# 定义名片字典
new_card = {}
new_card["name"] = new_name
new_card["tel"] = new_tel
new_card["addr"] = new_addr
# 将名片字典追加到名片列表
card_list.append(new_card)
def print_card(card_list):
"""打印名片功能"""
for card in card_list:
print("姓名:%s 电话:%s 住址:%s" % (card["name"], card["tel"], card["addr"]))
def clear_card(card_list):
"""清空名片功能"""
card_list.clear()
def del_card():
# 获取要删除名字
del_name = input("请输入您要删除的姓名")
# 遍历名片列表,判断输入的姓名是否存在
for card in card_list:
if del_name in card.values():
card_list.remove(card)
print("%s 的名片删除成功" % del_name)
break
else:
print("没有找到%s的名片" % del_name)
def modi_card():
# 获取旧名字
old_name = input('请输入旧名字')
# 把旧名字修改为新名字
for card in card_list:
if card["name"] == old_name:
# 获取新名字
new_name = input('请输入新名字:')
card["name"] = new_name
print("%s的名片修改成功" % old_name)
break
else:
print("没有找到您要修改的名字")
def find_card():
# 获取要查找的名字
find_name = input('请输入要查找的名字:')
# 判断名字是否存在
for card in card_list:
if card["name"] == find_name:
print("找到了")
break
else:
print("没有找到")
def main():
while True:
# 1. 打印系统提示
print('=======================')
print('欢迎使用 名片管理系统 v1.0')
print('1.添加名片')
print('2.删除名片')
print('3.修改名片')
print('4.查看名片')
print('5.查看所有名字')
print('6.清空名字')
print('0.退出系统')
print('=======================')
# 2. 获取用户选择
command = input('请输入您的选择:')
# 3. 根据选择进行处理
if command == '1':
add_card(card_list)
elif command == '2':
# "删除"
del_card()
elif command == '3':
# "修改"
modi_card()
elif command == '4':
# "查看"
find_card()
elif command == '5':
print_card(card_list)
elif command == '6':
clear_card(card_list)
elif command == '0':
# "退出"
break
else:
# "不知道什么指令"
print('输入错误,无法识别')
card_list = [] # 存放名片的列表, 必须放在循环外
# 以只读模式打开card.dat文件,把名片列表内容加载到card_list
f = open('card.dat','r')
content = f.read()
f.close()
if len(content) != 0:
file_list = eval(content)
card_list.extend(file_list)
main()
# 以只写模式打开一个文件,用于保存card_list内容
f = open("card.dat",'w')
f.write(str(card_list)) # 写入文件只能以文本方式写入
f.close()
print('程序结束')