For循环不适用于函数功能中的布尔返回值

时间:2018-11-18 21:49:14

标签: python function loops

我真的不知道该怎么办。 这就是我想要做的: 如果第一个数字大于“ a”且小于“ b”,则该函数必须返回true。否则,是错误的。 怎么了?

def is_in_range(lst,a,b):
    for num in lst:
        if num> a and num < b:
            return True
            i+=1
        elif num >=b:
            return False
            return c
        elif num <= a:
            return False
        elif len(lst) ==0:
            return True

 print is_in_range([1,2,3,5],0,4)

除非b =我的第一个数字,否则该函数将显示真。

1 个答案:

答案 0 :(得分:3)

实际上,您的缩进和控制流程并不十分清楚。但是根据您的描述,这可以解决您的问题:

def is_in_range(lst, a, b):
    return any(a < num < b for num in lst)

这也是非常通用的,如果您希望看到所有数字都在范围内,则只需将any更改为all

使它更接近您的起点:

def is_in_range(lst, a, b):
    if len(lst) == 0:
        return True
    for num in lst:
        if a < num < b:
            return True
    return False

请注意,每个函数仅返回一次,因此,如果找不到相应的值,则只有False会返回。