Python For循环不';t在函数中使用布尔返回

Python For循环不';t在函数中使用布尔返回,python,function,loops,Python,Function,Loops,我真的不知道该怎么办。 这就是我想做的: 如果我的lst中的数字大于“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

我真的不知道该怎么办。 这就是我想做的: 如果我的lst中的数字大于“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)
def在范围内(lst、a、b):
对于lst中的num:
如果num>a和num=b:
返回错误
返回c

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

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

请注意,每个函数只返回一次,因此,如果没有找到相应的值,只有在执行
return
语句时,才会返回
False

,函数退出。那么,您如何建议我对列表中的每个数字执行我想要的操作?您的函数正在执行您所说的它应该执行的操作。也许你应该更好地解释什么是预期的输出。我希望它检查每个数字,而不仅仅是第一个数字,如果其中一个小于b或大于a,它应该输出false。如果对于所有的数字,条件都为true,那么我希望它输出true。目前,它只是为列表中的第一个数字做这件事。但是如果条件为true,并且我已经从第一个“if”条件中删除了“return”语句,那么它将不返回任何内容。我不能使用打印,它只是为了测试代码。
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