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



我真的不知道该怎么办。这就是我要做的:如果我的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)

函数将我打印为true,除非b=我的lst中的第一个数字。

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

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

最新更新