主程序:
1 import cards_toolss
2 while True:
3 #显示功能菜单
4 cards_toolss.show_menu()
5 action_str=input("请选择希望执行操作:")
6 print("你选择希望执行操作【%s】"%action_str)
7 if action_str in ["1","2","3","4"]:
8 #新增名片
9 if action_str=="1":
10 cards_toolss.new_card()
11 #显示全部名片
12 elif action_str=="2":
13 cards_toolss.show_all()
14 #查询名片
15 elif action_str=="3":
16 cards_toolss.search_card()
17 elif action_str=="4":
18 print("欢迎你再次使用【名片管理系统】")
19 break
20 else:
21 print("你输入有误,重新输入。")
功能程序:
1 1 # -*- coding:utf-8 -*-
2 2 #开发工具
3 3 #定义一个空列表记录所有名片字典
4 4 card_list=[]
5 5 def show_menu():
6 6 """显示菜单"""
7 7 print("*" * 50)
8 8 print ("欢迎你使用[名片管理系统] v 1.0")
9 9 print("")
10 10 print("1. 新增名片")
11 11 print("2. 显示全部")
12 12 print("3. 查询名片")
13 13 print("")
14 14 print("0. 退出系统")
15 15 print("*" * 50)
16 16
17 17 def new_card():
18 18 """新增名片"""
19 19 print("-" * 50)
20 20 print("新增名片")
21 21 #提示用户输入名片的详细信息
22 22 name_srt=input("请输入姓名:")
23 23 phone_srt=input("请输入电话:")
24 24 qq_srt=input("请输入QQ:")
25 25 email_srt=input("请输入邮箱:")
26 26 #使用用户输入的信息建立一个名片字典
27 27 card_dict={
28 28 "name":name_srt,
29 29 "phone":phone_srt,
30 30 "QQ":qq_srt,
31 31 "email":email_srt,
32 32 }
33 33
34 34 card_dict={}
35 """
36 35 card_dict["name"]=name
37 36 card_dict["phone"]=phoen
38 37 card_dict["QQ"]=qq
39 38 card_dict["email"]=email
40 39
41 40 """
42 41 #将名片字典添加到列表中
43 42 card_list.append(card_dict)
44 43 #print(card_list) 测试
45 44 #提示用户添加成功
46 45 print("添加%s名片成功"%name_srt)
47 46 def show_all():
48 47 """显示所有名片"""
49 48 print("-" * 50)
50 49 print("显示所有名片")
51 50 #判断是否存在名片记录,如果没有提示并返回
52 51 if len(card_list)==0:
53 52 print("当前没有任何的名片记录,请使用新增功能添加名片")
54 53 #return可以返回一个函数执行结果
55 54 #下方代码不会被执行
56 55 #如果return后面没有任何内容,表示会到调用函数的位置
57 56 #并且不返还任何结果
58 57 return
59 58 # 打印表头
60 59 for name in ["姓名","电话","QQ","邮箱"]:
61 60 print(name,end=" ")
62 61 print("")
63 62 #打印分割线
64 63 print("=" * 50)
65 64 #遍历名片列表依次输出字典
66 65 for card_dict in card_list:
67 66 #print(card_dict)
68 67 print("%s %s %s %s"%(
69 68 card_dict["name"],
70 69 card_dict["phone"],
71 70 card_dict["QQ"],
72 71 card_dict["email"]
73 72 ))
74 73 print("=" * 50)
75 74
76 75 def search_card():
77 76 """搜索名片"""
78 77 print("-" * 50)
79 78 print("搜索名片")
80 79 #提示用户输入要搜索名片
81 80 find_name=input("请输入要搜索姓名:")
82 81 #遍历名片列表,查询要搜索名片,如果没有找到,提示用户
83 82 for card_dict in card_list:
84 83 if card_dict["name"]==find_name:
85 84 #print("找到了%s"%find_name)
86 85 """ for name in ["姓名","电话","QQ","邮箱"]:
87 86 print(name,end=" ")
88 87 print("")
89 88 #打印分割线
90 89 print("=" * 50)
91 90 #遍历名片列表依次输出字典
92 91 for card_dict in card_list:
93 92 #print(card_dict)
94 93 print("%s %s %s %s"%(
95 94 card_dict["name"],
96 95 card_dict["phone"],
97 96 card_dict["QQ"],
98 97 card_dict["email"]
99 98 ))
100 99 print("=" * 50)
101 100 """
102 101 print("姓名 电话 QQ email")
103 102 print("=" * 50)
104 103 print("%s %s %s %s" % (
105 104 card_dict["name"],
106 105 card_dict["phone"],
107 106 card_dict["QQ"],
108 107 card_dict["email"]
109 108 ))
110 109 print("=" * 50)
111 110 # 针对找到名片记录执行修改和删除
112 111 deal_card(card_dict)
113 112 break
114 113 else:
115 114 print("抱歉,没有找到%s"%find_name)
116 115 def deal_card(find_name):
117 116 """
118 117 处理查找到的名片
119 118 :param find_name: 查找到的名片
120 119 """
121 120 print(find_name)
122 121 action_str=input("请输入要执行操作 "
123 122 "[1] 修改 [2] 删除 [0] 返回上级菜单")
124 123 if action_str=="1":
125 124 find_name["name"] = input_card_info( find_name["name"],"姓名:")
126 125 find_name["phone"] = input_card_info(find_name["phone"],"电话:")
127 126 find_name["QQ"] = input_card_info(find_name["QQ"],"QQ:")
128 127 find_name["email"] = input_card_info(find_name["email"],"email:")
129 128 print("修改%s名片成功"%find_name["name"])
130 129 elif action_str=="2":
131 130 card_list.remove(find_name)
132 131 print("删除%s名片成功"%find_name["name"])
133 132
134 133 def input_card_info(dict_value,tip_message):
135 134 """输入名片信息
136 135
137 136 :param dict_value: 字典中原有的值
138 137 :param tip_message: 输入提示文字
139 138 :return: 如果用户输入内容,就返回内容,否则返回字典中原有的值
140 139 """
141 140 #提示用户输入内容
142 141 result_str=input(tip_message)
143 142 #针对用户的输入进行判断,如果用户输入内容,直接返回结果
144 143 if len(result_str)>0:
145 144 return result_str
146 145 else:
147 146 return dict_value
148 147
149 148 #如果用户没有输入内容,返回字典中原有的值
150