Python3返回值的缩进

时间:2019-10-13 08:08:00

标签: python function

发现33:

给出一个整数列表,如果数组旁边有一个3,则返回True。 一个3的地方。

has_33([1, 3, 3]) → True
has_33([1, 3, 1, 3]) → False
has_33([3, 1, 3]) → False

这是我的做法:

def has_33(nums):
    for i in range(0, len(nums)-1):
        if nums[i] == 3 and nums[i+1] == 3:
            return True
        else:    
            return False

'''''''''''''''''''''''''''''''''''''' 答案是:

def has_33(nums):
    for i in range(0, len(nums)-1):
        if nums[i] == 3 and nums[i+1] == 3:
            return True
    return False

为什么第一种编码方法不起作用?有人可以解释吗?

2 个答案:

答案 0 :(得分:1)

def has_33(nums):
    for i in range(0, len(nums)-1):
        print("iteration ",i)
        if nums[i] == 3 and nums[i+1] == 3:
            return True
        else:    
            return False

因此在上面的代码中,如果您看到代码从else部分返回。此外,循环只执行一次。

您想要的是,循环应该运行完整长度,因此需要您最后返回False

答案 1 :(得分:0)

因为在您的示例中,第一次在另一个3旁边找不到3时返回False。并且您想等到返回False,直到它检查了所有列表。