friends = ["Bob","Mike","Ana","Tim","Dog"]
def is_buddy(name):
for friend in friends:
print friend
if friend == name:
return True
else:
return
print (is_buddy('Tim'))
这是什么问题?如果我输入“蒂姆”或鲍勃以外的任何其他人,为什么我会False
答案 0 :(得分:3)
尝试:
def is_buddy(name):
for friend in friends:
if friend == name:
return True
return False
问题是您针对列表的第一个条目name
检查了Bob
,并且您决定做出布尔决策。您应该仅在检查列表中每个元素的末尾返回False
。
答案 1 :(得分:1)
做你想做的事的pythonic方式:
friends = ["Bob","Mike","Ana","Tim","Dog"]
def is_buddy(name):
if name in friends:
return True
else:
return False
print (is_buddy('Tim'))
答案 2 :(得分:0)
你的问题是else
语句老虎return
导致1' s迭代后for循环的结束
您可能想要做的是继续循环。因此,只需从您的函数中删除else
部分,或将return
替换为print "not found"