def binary_search ( list, item) :
# в low и high хранятся границы части списка, где выполняется поиск
low = 0
high = len(list)-1
i = 0
# Пока не останется один элемент
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