Пишу код алгоритма бинарного поиска с книги 'Грокаем алгоритмы'. Все работает, но меня смущает что выходит значение None при поиске значения в массиве. Хотя это число присутствует в массиве. Как это исправить?
Вот как выглядит код -
def binary_search(list, item):
low = 0
high = len(list) - 1
while low <= high:
mid = (low + high) // 2
guess = list[mid]
if guess == item:
return mid
elif guess > item:
high = mid - 1
else:
low = mid + 1
return None
my_list = [1, 8, 4, 25, 14, 9, 3, 10]
print(binary_search(my_list, 14))
print(binary_search(my_list, 2))
print(binary_search(my_list, 8))
Вот что выводит консоль(первое значение должно выдать индекс, но почему то выводит None) -