Как в Python корректно использовать алгоритм бинарного поиска?
Вижу несколько разных вопросов:
Как произвести подсчет числа прописных букв в тексте просто?
Как произвести подсчет числа прописных букв в тексте быстро?
Что за хрень я написал и почему она не работает?#  просто и быстро
STR_TEXT = "Требуется произвести подсчет числа прописных букв в тексте."
AllCapitalLetters = set("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")
CapitalInTEXT = [c for c in STR_TEXT if c in AllCapitalLetters]
print(CapitalInTEXT)
print(len(CapitalInTEXT))
С латиницей прокатил бы такой вариант:STR_TEXT = "CapitalInTEXT = [c for c in STR_TEXT if 'A' <= c <= 'Z']"
CapitalInTEXT = [c for c in STR_TEXT if 'A' <= c <= 'Z']
С кириллицей так не выйдет: в юникоде, напримерIn [1]: ''.join(chr(i) for i in range(1025, 1072))
Out[1]: 'ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'в других кодировках по-другому.
Чтож, попрактикуемся в бинарном поиске:AllCapitalLetters = 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
# обрати внимание на порядок букв
# на неотсортированном AllCapitalLetters алгоритм виснет
CapitalInTEXT = []
for c in STR_TEXT:
    i = 0
    j = len(AllCapitalLetters) - 1
    while i <= j:
        m = (i + j) // 2
        cm = AllCapitalLetters[m]
        if c > cm:
            i = m + 1
        elif c < cm:
            j = m - 1
        else:
            CapitalInTEXT.append(cm)
            break
Вместо самописа можно воспользоваться стандартной библиотекой:from bisect import bisect_left

AllCapitalLetters = 'ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
CapitalInTEXT = []
for c in STR_TEXT:
    idx = bisect_left(AllCapitalLetters, c)
    if idx < len(AllCapitalLetters) and c == AllCapitalLetters[idx]:
        CapitalInTEXT.append(c)
По быстродействию простой вариант в 8 раз лучше варианта с bisect и 24 раза лучше самописного.
На этой задаче бинарный поиск бесполезен. А полезен он, например, при поиске ближайших соседей испытуемой буквы, которой в AllCapitalLetters нет, напр. буквы "Ї".
Какой-то у тебя большой бинарный поиск. Посмотри на мой omgit.ru/blog/binary-search