Задать вопрос

Почему выводится None?

На хабре уже был подобный вопрос, но у меня не получается все равно вывести ту цифру, которую ввожу. Всегда выходит None. Бинарный поиск работает когда список отсортирован, так сказано в книге Почему у меня все равно None?

my_list = [2,4,5,8,9,6]
sl = sorted(my_list)

def binary_search(list, item):
    low = 0
    hight = len(list)-1

    while low <= hight:
        mid = (low + hight)//2
        guess = list[mid]
        if guess == item:
            return mid
        elif guess > item:
            hight = mid -1
        else:
            low = mid + 1
        return None

print(binary_search(sl, 2))


$ python test.py
None
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@sand3001
Всего по немногу
Потому что у Вас return None выполняется при первом же прохождении тела цикла while
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы