#获取用户输入 15 order = int(input('请输入命令编码:')) 16 #根据用户输入实现相应功能 17 if order == 1: 18 #定义一个字典用于存放名片信息 19 card = {} 20 name_new = input('请输入姓名:') 21 age_new = int(input('请输入年龄:')) 22 job_new = input('请输入工作:') 23 tel_new = input('请输入电话:') 24 #讲用户输入的信息存在名片字典 25 card['name']=name_new 26 card['age']=age_new 27 card['job']=job_new 28 card['tel']=tel_new 29 30 #将名片字典存于名系统中 31 cards.append(card) 32 #查看输入的名片 33 print(cards) 34 print('') 35 elif order == 4: 36 find_name = input('请输入您要查找的姓名:') 37 find_flag=0#默认表示没有找到 38 for temp in cards: 39 if find_name == card['name']: 40 print('%s\t%d\t%s\t%s'%(temp['name'],temp['age'],temp['job'],temp['tel'] )) 41 find_flag == 1#标记找到这个动作(如果找到,这个变量就变为1) 42 break#一旦找到目标姓名就跳出if循环 43 44 if find_flag==1: 45 break 46 else: 47 print('没有此人名片') ***************************************** 48 elif order == 2: 49 del_name = input('请输入要删除的姓名:') 50 find_flag = 0 51 for i in cards: 52 if del_name==card['name']: 53 find_flag == 1 54 break 55 if find_flag == 1: ****************************************** 56 57 58 elif order == 3: 59 pass 60 elif order == 5: 61 print('姓名\t年龄\t工作\t电话')
思考了一段时间,也搜了一下网上的,认为:
不只删除这个功能,修改同样需要从列表中找出需要的具体是哪个字典
然后才能考虑实现删除,与修改的问题。
故而,仅仅用列表与字典的功能估计很难解决这个问题
猜测接下来的课程就是讲如何利用函数来实现了。
2018.3.26
---------------------------------------------------
思路:
1 利用for else逻辑结构,在找到要删除或者查找的姓名时,print出
这个字典的items,利用用户输入的这个find_name删除列表里的相应那个名片字典?
2 用for循环标记处找到的字典的下标,利用下标删除字典,可否?
3 循环遍历列表,判断名字在不在当前字典,如果在就删除(https://www.52pojie.cn/thread-633774-1-1.html)

elif order == 2: 51 del_name = input('请输入要删除的姓名:') 52 find_flag = 0 53 i = 0 54 for i in cards: 55 if del_name==card['name']: 56 #print('姓名:%s\t年龄:%s\t工作:%s\t电话:%s'%(i['name'],i['age'],i['job'],i[' tel'])) 57 i+=1 58 print(i-1) 59 find_flag == 1 60 print('要删除的名片已找到')
del card[(i-1)]#https://www.zhihu.com/question/62892236 此处看不太懂 61 break 62 else: 63 print('查无此人!')
代码一直异常,在55行这里报错
TypeError: unsupported operand type(s) for +: 'dict' and 'int'
看不懂,百度也看不明白到底啥意思。
2018.3.27,头很大,眼睛很酸。
————————————————————————————————
浙公网安备 33010602011771号