依旧要先说明的是字典的增删改查:
定义一个字典:
dict = {'key1':'value','key2':'value'}
增: dic['key3'] = 'xxx' #若键不存在,将这条键值存入字典。
删: del dict['key'] #删除这条键值关系。
改: dict['key'] = xxxx #更改key对应的value,前提是key存在的情况下。
查: dict['key'] #若key 不存在会报错。
dict.get('key') #若key存在返回value,若key不存在返回为空不报错(推荐使用)
字典和列表结合操作的典例:
我这个写的稍有繁杂,希望多提建议。
思想就是将每个人的名片包含的信息(姓名,手机号,QQ,地址)存到每个字典里,然后将每个字典存到列表中。
1 #名片管理系统V1.01,将用户信息以字典存储,放入列表
2 #打印目录,增删改查(1,2,3,4)退出系统0
3 #获取用户所选择的功能
4 cards = []
5 #功能实现
6 while 1:
7 print("名片管理系统-V1.01")
8 print('*'*20)
9 print("1.添加新名片")
10 print("2.删除一个名片")
11 print("3.修改名片信息")
12 print("4.查找名片是否存在")
13 print("5.查看名片信息")
14 print("0.退出系统")
15 print('*'*20)
16 user_option = int(input("请输入您的选择:"))
17 if user_option == 1: #增
18 new_name = input("请输入您的姓名:")
19 new_phoneNum = input("请输入您的手机号码:")
20 new_qq = input("请输入您的QQ:")
21 new_add = input("请输入您的地址:")
22 new_card = {}
23 new_card['name'] = new_name
24 new_card['phoneNum'] = new_phoneNum
25 new_card['QQ'] = new_qq
26 new_card['add'] = new_add
27 cards.append(new_card)
28 elif user_option == 2: #删
29 del_name = input("请输入删除名片的姓名:")
30 index = 0
31 flag = 0
32 for card in cards:
33 if card['name'] == del_name:
34 del cards[index]
35 flag = 1
36 break
37 index += 1
38 if flag == 0:
39 print("很抱歉,查无此人无法删除!")
40 elif user_option == 3: #改
41 correct_name = input("请输入修改名片的姓名:")
42 index = 0
43 flag = 0
44 for card in cards:
45 if card['name'] == correct_name:
46 flag = 1
47 break
48 index += 1
49 if flag == 0:
50 print("查无此人,无法修改!")
51 print("1.修改姓名")
52 print("2.修改号码")
53 print("3.修改QQ")
54 print("4.修改住址")
55 correct_option = int(input("请输入您的修改选项:"))
56 correct_content = input("请输入您的修改内容:")
57 if correct_option == 1:
58 cards[index]['name'] = correct_content
59 elif correct_option == 2:
60 cards[index]['phoneNum'] = correct_content
61 elif correct_option == 3:
62 cards[index]['QQ'] = correct_content
63 elif correct_option == 4:
64 cards[index]['add'] = correct_content
65 else:
66 print("修改选项不正确请重新选择!")
67 elif user_option == 4: #找
68 del_name = input("请输入查找名片的姓名:")
69 index = 0
70 flag = 0
71 for card in cards:
72 if card['name'] == del_name:
73 print("姓名\t电话\tQQ\t住址")
74 print("%s\t%s\t%s\t%s"%(cards[index]['name'],cards[index]['phoneNum'],cards[index]['QQ'],cards[index]['add']))
75 flag = 1
76 break
77 index += 1
78 if flag == 0:
79 print("很抱歉,查无此人!")
80
81 elif user_option == 5: #查
82 for card in cards:
83 print("姓名\t电话\tQQ\t住址")
84 print("%s\t%s\t%s\t%s"%(card['name'],card['phoneNum'],card['QQ'],card['add']))
85 elif user_option == 0: #退出系统
86 break
87 else:
88 print("输入错误,请重新输入:")