Условия задачи:

 

1. Дан список слов в алфавитном порядке. Напишите функцию, которая выполнит двоичный поиск слова и вернет ответ о том, имеется ли оно в списке.

 

Решение задачи:

def main(list_, value):
    left = 0
    rigth = len(list_)-1
    while left <= rigth:
        mid = (left + rigth) // 2
        if list_[mid] == value:
            return True
        elif list_[mid] > value:
            rigth = mid - 1
        else:
            left = mid + 1
    return False

list_ = ['роза', 'кардинал', 'потом']
list_ = sorted(list_)
print(main(list_, 'кардинал'))
print(main(list_, 'что-то'))