首页 > 解决方案 > 为什么这个循环不起作用,而类似的循环起作用?

问题描述

如果列表“nums”在某处的某个 3 旁边包含一个 3,则此函数应返回 True。

函数“has_33”应该接受一个列表参数,所以这个循环完美地工作: -

def has_33(nums):
    for i in range(0, len(nums)-1):

        if nums[i:i+2] == [3,3]:
            return True  

    return False

但是当我以这种形式这样做时:-

def has_33(nums):
    for i in range(0,len(nums)-1):  

        if nums[i:i+2] == [3,3]:
            return print("True")
        else:
            if i == len(nums)-1:
                return print("False")

如果数组不包含条件,则无法打印“False”。

那么为什么第一个循环有效,而第二个循环不工作,尽管它们是相同的呢?

标签: pythonpython-3.x

解决方案


你不应该把这个条件:

if i == len(nums)-1:

在你的函数里面。即使你这样做,使用:

if i == len(nums)-2:

因为i永远不会变成len(nums)-1(见上面的循环条件)


推荐阅读