|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
card_List = [{'name':'张三','phone':'123','email':'123@qq.com'},
{'name':'李四','phone':'234','email':'234@qq.com'},
{'name':'王五','phone':'345','email':'345@qq.com'},
{'name':'赵九','phone':'456','email':'456@qq.com'}
]
FindName = input('请输入你要查询的名字:')
for card_dict in card_List:
if card_dict['name'] == FindName:
print('姓名\t\t\t手机号\t\t\t邮箱')
print('{}\t\t\t{}\t\t\t{}'.format(
card_dict['name'],
card_dict['phone'],
card_dict['email']
))
break
else:
print('该员工不存在')
#print(card_dict)
因为Crad_list 中有4个值为字典的列表
所以在遍历这个列表时 for循环下面的else会被执行好几次
需求是 当我找到在列表中的字典并且打印输出 之前的 或者剩下的遍历循环中中 不会esle 以后的代码不会被执行
想了一天了 求大佬解救
本帖最后由 jackz007 于 2020-12-23 20:13 编辑
else 的缩进位置不对,调整一下就可以了。把原来属于 if 的 else 语句调整给了 for 语句,在循环正常结束的时候会执行到里面。如果是 break 退出的循环,就不会执行。
遍历寻找的逻辑是这样的,如果找到,可以当即下结论并退出循环,但是,没有找到的结论必须要在循环结束了才可以下。
- card_List = [{'name':'张三','phone':'123','email':'123@qq.com'},
- {'name':'李四','phone':'234','email':'234@qq.com'},
- {'name':'王五','phone':'345','email':'345@qq.com'},
- {'name':'赵九','phone':'456','email':'456@qq.com'}]
- FindName = input('请输入你要查询的名字:') . strip()
- if FindName:
- for d in card_List:
- if d['name'] == FindName:
- print('{}\t\t\t{}\t\t\t{}'.format(
- d['name'],
- d['phone'],
- d['email']))
- break
- else:
- print('该员工不存在')
复制代码
|
-
|