Почему выводится 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
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@sand3001
Всего по немногу
Потому что у Вас return None выполняется при первом же прохождении тела цикла while
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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