Напишите функцию, которая принимает отсортированных список и искомый в нем элемент, с помощью метода бинарного поиска ищет этот элемент в списке. Функция должна возвращать индекс искомого элемента, если он найден в списке, или None в случае отсутствия элемента.
from random import randint # Функция в качестве аргументов принимает # список и элемент, который надо найти в списке. # Функция возвращает None, # если элемент не был найден, # или индекс местонахождения элемента. def search(lst, item): # середина списка mid = len(lst) // 2 # индекс первого элемента low = 0 # индекс последнего элемента high = len(lst) - 1 # Цикл выполняется до тех пор, # пока искомый элемент не найден # или нижняя граница не превышает верхнюю. while lst[mid] != item and low <= high: # Если искомый элемент больше # элемента в середине среза, то # нижняя граница сдвигается за середину. if item > lst[mid]: low = mid + 1 # Если искомый элемент меньше элемента # в середине среза, то верхняя граница # устанавливается перед серединой. else: high = mid - 1 # вычисляется середина нового среза mid = (low + high) // 2 # Нижняя граница может быть больше верхней # только в случае, когда элемент не был найден. if low > high: return None # Иначе искомый элемент # находится в текущей середине. else: return mid # заполнение и сортировка списка a = [] for i in range(10): a.append(randint(1, 20)) a.sort() print(a) # элемент для поиска value = int(input()) # Вызов функции, # вывод полученного результата на экран. print(search(a, value))