# coding = utf-8
card_infor = []
def print_menu():
"""打印提示信息"""
print("="*20)
print(" 名片管理系统")
print("1.添加一个新的信息")
print("2.删除一个信息")
print("3.修改一个信息")
print("4.查询一个信息")
print("5.查看所有信息")
print("6.保存信息")
print("0.退出信息")
print("=" * 20)
def choose_num():
"""让用户进行选择"""
try: #防止错误
while True:
num = int(input("请输入功能序号"))
if num == 1: #增加信息
add_infor()
elif num == 2: #删除信息
del_infor()
elif num == 3: #修改信息
modify_infor()
elif num == 4: #查询信息
find_infor()
elif num == 5: #输出所有信息
print_infor()
elif num == 6: #保存信息
save_infor()
elif num == 0: #退出系统
print("退出系统")
break
else:
print("您输入%d,输入错误,请重新输入数字范围为0-6"%num)
except Exception:
print("输入格式错误,请重新输入数字范围为0-6")
choose_num()
def add_infor():
"""增加信息"""
global card_infor #全局变量
new_infor = {} #定义字典
new_infor["name"] = input("请输入新的名字")
new_infor["QQ"] = input("请输入QQ号")
new_infor["weixin"] = input("请输入微信号")
new_infor["addr"] = input("请输入地址")
card_infor.append(new_infor) #将字典添加到列表中
print(card_infor) #for test
def del_infor():
"""删除信息"""
global card_infor
del_name = input("请输入要删除的名字")
del_num = 0 #所要删除的下标
for i in card_infor:
if del_name == i["name"]: #进行匹配
print("已找到")
print("姓名\tQQ号\t微信号\t地址")
print("%s\t%s\t%s\t%s"%(i["name"],i["QQ"],i["weixin"],i["addr"]))
try:
del_flag = int(input("是否删除,是请输入1,否请输入0 :"))
if del_flag == 1:
del card_infor[del_num]
print("已删除")
elif del_flag == 0:
print("已取消删除操作")
else:
print("您输入%d,输入错误,退出删除操作!"%del_flag)
except Exception:
print("输入格式错误,退出删除操作!")
break
else:
del_num += 1 #下标+1
if del_num >= len(card_infor): #判断是否遍历完全
print("未找到删除人的信息")
break
def modify_infor():
"""修改信息"""
global card_infor
modify_name = input("请输入要修改的名字")
modify_num = 0 # 所要删除的下标
for i in card_infor:
if modify_name == i["name"]: # 进行匹配
print("已找到")
print("姓名\tQQ号\t微信号\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
try:
while True:
modify_choose = int(input("修改名字请输入:1,修改QQ请输入:2,\
修改微信请输入:3,修改地址请输入:4,取消修改请输入0 :"))
if modify_choose == 1:
card_infor[modify_num]["name"] = input("请输入新的名字")
print("已修改")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
elif modify_choose == 2:
card_infor[modify_num]["QQ"] = input("请输入新的QQ")
print("已修改")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
elif modify_choose == 3:
card_infor[modify_num]["weixin"] = input("请输入新的微信")
print("已修改")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
elif modify_choose == 4:
card_infor[modify_num]["addr"] = input("请输入新的地址")
print("已修改")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
elif modify_choose == 0:
print("结束本次修改...")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
break
else:
print("您输入%d,输入错误,请重新输入数字范围为0-4"%modify_choose)
except Exception:
print("输入格式错误,退出修改操作!")
break
else:
modify_num += 1
if modify_num >= len(card_infor):
print("未找到要修改人的信息")
break
def find_infor():
"""查询信息"""
global card_infor
find_num = 0
find_name = input("请输入要查找的名字:")
find_flag = 0 #进行判断
for i in card_infor:
if find_name == i["name"]:
find_flag += 1 #找到一次+1
if find_flag == 1:
print("已找到")
print("姓名\tQQ\t微信\t地址")
print("%s\t%s\t%s\t%s" % (i["name"], i["QQ"], i["weixin"], i["addr"]))
else:
find_num += 1
if find_num >= len(card_infor):
print("未找到该人的信息")
break
def print_infor():
"""输出所有信息"""
global card_infor
print("姓名\tQQ号\t微信号\t地址\t")
for i in card_infor:
print("%s\t%s\t%s\t%s"%(i["name"],i["QQ"],i["weixin"],i["addr"]))
def save_infor():
"""保存信息"""
save_file = open("backup.WP","w") #把信息读写后 保存在文件里
save_file.write(str(card_infor)) #进行读写
save_file.close() #关闭文件
print("已经保存程序信息")
def load_infor(): #加载信息
"""加载之前数据至程序中"""
global card_infor
try: #来进行判断 如果本地没有该文件的话 最后用save_infor()也就是6 来创建文件并保存信息
load_file = open("backup.WP") #读取文件数据
card_infor = eval(load_file.read()) #将文件读入程序中
load_file.close() #关闭文件
except Exception:
pass
def main():
"""执行函数"""
load_infor() #加载程序
print_menu() #打印信息
choose_num() #选择功能
if __name__ == "__main__": #自己调用
#执行
main()
名片管理系统-函数&文件版
最新推荐文章于 2024-06-06 21:22:55 发布