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

Как сделать так, чтобы код заработал?

Привет, не понимаю, в чём ошибка. Ругается на print binary_search(my_list, 3) # => 1

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
        if guess > item:
           high = mid - 1
        else:
          low = mid + 1
      return None

      my_list = [1, 3, 5, 7, 9]

      print binary_search(my_list, 3) # => 1
      print binary_search(my_list, -1) # => None
  • Вопрос задан
  • 840 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 1
ri_gilfanov
@ri_gilfanov
Web- and desktop-developer
В Python 3, print должен быть функцией, а не оператором:
def binary_search(list, item):
      # ...
      print(binary_search(my_list, 3)) # => 1
      print(binary_search(my_list, -1)) # => None

Update. Ещё я бы заменил деление / на деление без остатка //:
mid = (low + high) // 2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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