Возвращает `None`, в книге ошибка?


def binary_search(my_list,item):
   low = 0
   high = len(my_list) - 1
   while low <= high:
      mid = (low + high)
      guess = my_list[mid]
      if guess == item:
         return mid
      if guess > item:
         high = mid - 1
      else:
         low = mid + 1
   return None

my_list = [1,3,5,7,9,11]
print(binary_search(my_list,7))

Возвращает None, в книге ошибка ? потому что я вроде ничего не пропустил... есть тут какая то ошибка


Ответы (1 шт):

Автор решения: mepihindeveloper

Запустил скрипт на python и получил верный результат: номер позиции 3. Единственное, что у вас есть ошибка в табуляции:

def binary_search(my_list,item):
   low = 0
   high = len(my_list) - 1
   while low <= high:
      mid = (low + high)
      guess = my_list[mid]
      if guess == item:
         return mid
      if guess > item:
         high = mid - 1
      else:
         low = mid + 1
   return None

my_list = [1,3,5,7,9,11]
print(binary_search(my_list,7))
→ Ссылка