我有3个清单:
members = ['Alex', 'Danny', 'Kieran', 'Zoe', 'Caroline']
visitors = ['Scott', 'Helen', 'Raj', 'Danny']
signups = ['Helen', 'Scott']
函数应返回既不是现有成员也不是新成员的visitors
列表。如果没有,则返回None
这是我的代码:
def guests(member,signup,visitor):
visit = []
for person in visitor:
if person not in member and signup:
visit.append(person)
return visit
return print("None.")
但是我的输出返回["Scott"]
。我似乎不知道我做得不对的地方是什么
首先,您在获得第一个值之后返回,其次,您可能需要更改
if person not in member and signup
到if person not in member and person not in signup
如果缩进错误,则在第一次出现已注册且不是成员的人员后返回列表的值,则应将缩进修正为:
另外,请注意我是如何更改您的返回值的。您不应该返回
Print('None')
,因为虽然它最终将返回None(因为print返回None,这不是最佳实践)person not in member and signup
的计算结果为(person not in member) and (signup)
当
person
为“Scott”时,第一部分为True
,第二部分(signup
)为非空列表,因此在布尔上下文中它被计算为True
,因此整个条件为True
然后,立即
return
输出,而无需进一步循环你的意思是:
相关问题 更多 >
编程相关推荐