如何编写双参数Python函数判断访客列表中是否存在会员
问题解答
要求含义说明
其中{person}要替换为访客列表中被识别为会员的人员的名字
这句话的意思是:你需要同时比对会员列表members和访客列表visitors,只要访客列表里存在任意一个属于会员的人,就返回格式为Member present: 对应会员名字.的字符串;如果访客里没有任何会员,就返回No members.即可。
现有代码问题
- 硬编码判断成员是否等于
Danny,完全没有用到传入的访客列表参数,逻辑不通用 - 循环第一次执行就会触发
return,不管是否匹配都会直接终止函数,不会遍历完所有成员完成校验 - 没有实现「判断访客是否属于会员」的核心逻辑
修正后代码
members = ['Danny', 'Alex', 'Kieran', 'Zoe', 'Caroline'] visitors = ['Scott', 'Helen', 'Raj', 'Danny'] def check_group(members, visitors): # 遍历所有访客,判断是否在会员列表中 for visitor in visitors: if visitor in members: # 找到第一个来访的会员就返回结果 return f'Member present: {visitor}.' # 所有访客都遍历完还没找到会员,返回无会员 return 'No members.' print(check_group(members, visitors))
代码逻辑说明
- 优先遍历访客列表,逐个判断当前访客是否属于会员列表
- 只要匹配到第一个符合要求的会员,就直接格式化返回结果,终止后续遍历
- 如果遍历完所有访客都没有匹配到会员,再返回无会员的提示
内容的提问来源于stack exchange,提问作者odevney
相关产品推荐
相关产品推荐

