Цикл for не работает с возвращением bool в функции function - PullRequest
0 голосов
/ 19 ноября 2018

Я действительно не знаю, что делать.Вот что я пытаюсь сделать: если число в моем 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)

Функция выводит меня на экран, если только b = первое число в моем lst.

1 Ответ

0 голосов
/ 19 ноября 2018

На самом деле ваш поток отступов и контроля не совсем понятен. Но на основании вашего описания это решит вашу проблему:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...