Python:循环If语句

时间:2015-07-25 14:07:49

标签: python if-statement for-loop

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

3 个答案:

答案 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"