return语句如何在函数中工作?我可以使用多个return语句吗?

时间:2019-10-25 21:37:56

标签: python python-3.x list

以下代码返回“ True”。

check = [1,2,4,6]

def is_consecutive(a_list):
    """Checks to see if the numbers in a list are consecutive"""
    total = 2
    while total > 1:
        test = a_list.pop(0)
        if test == a_list[0] - 1:
            total = len(a_list)
            return True
        else:
            return False
            break

works = is_consecutive(check)
print(works)

我找到了一个解决方案,方法是在while循环之后,将Return True移至新块:

check = [1,2,4,6]

def is_consecutive(a_list):
    """Checks to see if the numbers in a list are consecutive"""
    total = 2
    while total > 1:
        test = a_list.pop(0)
        if test == a_list[0] - 1:
            total = len(a_list)
        else:
            return False
            break
    return True

works = is_consecutive(check2)
print(works)

我不完全理解为什么将这段代码移到while循环之外可以正常工作。在我看来,一旦您告诉函数返回True,就无法在以后的函数中更改它。正确吗?

3 个答案:

答案 0 :(得分:0)

是的,当您执行return True时,就是从那时起“退出”该函数,即该函数中的其他任何命令都不会执行。通过将return True移到while循环外并移至函数末尾,可以确保如果列表是连续的,则该函数从不返回False,因此必须返回{{1} }。

答案 1 :(得分:0)

这是因为在新代码中,您试图找到一个条件,使列表中的数字不连续。如果您发现任何数字,那么您会立即返回false。

,一旦遍历该列表,但没有找到连续的数字,则将其视为具有连续数字的列表,因此返回True

答案 2 :(得分:0)

Return语句停止执行该特定功能。是的,您可以使用多个return语句,但只能在条件块中使用。因为在调用return语句时,它将停止执行该函数,因此它将无法在return语句后继续执行行/块。