Не понимаю часть алгоритма бинарного поиска?
Наверное потому что в массиве индексы начинаются с 0. И потому индекс последнего элемента массива будет равне длине массива минус 1 почему нельзя написать просто stop = len(my_list)
потому что в таком случае есть вероятность вылететь с ошибкой при обращении к несуществующему элементу массива
Вот почемуdef binary_search(mylist, item):
    start = 0
    stop = len(my_list) # верни -1

    while start <= stop:
        mid = (start + stop) // 2
        guess = mylist[mid]
        if guess  == item:
            return mid
        if guess > item:
            stop = mid - 1
        else:
            start = mid + 1
    return None

my_list = [1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,19]
print(binary_search(my_list, 20))