Почему этот код рекурсивного деления на части python не работает - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок ie и у меня проблема с отладкой этого кода, я действительно не знаю, что не так. Помоги пожалуйста. Этот код должен возвращать True, если элемент находится в списке, но вместо этого он возвращает False.

def find_item(list, item):
  #Returns True if the item is in the list, False if not.
  if len(list) == 0:
    return False

  #Is the item in the center of the list?
  middle = len(list)//2
  if list[middle] == item:
    return True

  #Is the item in the first half of the list? 
  if item < list[middle]:
    #Call the function with the first half of the list
    return find_item(list[:middle], item)
  else:
    #Call the function with the second half of the list
    return find_item(list[middle+1:], item)

  return False

#Do not edit below this line - This code helps check your work!
list_of_names = ["Parker", "Drew", "Cameron", "Logan", "Alex", "Chris", "Terry", "Jamie", "Jordan", "Taylor"]

print(find_item(list_of_names, "Alex")) # True
print(find_item(list_of_names, "Andrew")) # False
print(find_item(list_of_names, "Drew")) # True
print(find_item(list_of_names, "Jared")) # False

все результаты имеют значение False, мне действительно нужна помощь

...