Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3返回值缩进_Python_Function - Fatal编程技术网

Python3返回值缩进

Python3返回值缩进,python,function,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 T

查找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
为什么第一种代码方法不起作用?有人能解释一下吗

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

因为在您的示例中,第一次没有找到3旁边的另一个3时返回False。您需要等待返回False,直到它检查完所有列表。

您的第一个变体不会循环数字-它总是在第一步返回。当您
返回时,您的函数退出,控制流返回给调用方。因此,如果一行中没有2个连续的
3个
s,则将退出函数,而不检查数组的其余部分