ЯндексПрактикум, почему бот не видит вложенную функцию?
Функция в питоне - это объект первого рода.
В питоне всё - объекты. И функция и число и строка и список и словарь и класс и экземпляр класса.
У каждого объекта может быть много имён. Рассматривайте имя объекта, как ярлычок, привязанный к чайному пакетику.
print_friends_count(count)
Здесь print_friends_count это имя переменной, а скобочки после него заставляют вызывать объект, доступный пр этому имени как функцию. Вызов происходит с передачей единственного аргумента, который доступен по имени count.

Если в коде на питоне в каком-то выражении (а вызов функции - это выражение; результат вызова - это всегда какое-то значение, например None; да, None - это тоже объект, его возвращает функция по умолчанию) встречается какое-то имя, то это имя ищется в локальной области видимости этой функции (то есть в самой функции), потом в той области видимости, где объявлена функция, потом еще выше и так далее до самого модуля. Самая верхняя - глобальная область видимости - это модуль. Если имя не нашлось нигде, даже в модуле, то оно поищется среди __builtins__ - это такой словарик с именами и объектами, доступными везде. Если не найдётся и там, то будет ошибка.
В вашем случае функцию следовало оставить на уровне модуля. Вызвать ее можно будет где угодно внутри модуля, но при условии, что оператор объявления функции уже выполнен.

При запуске программы (или импорте модуля) по очереди выполняются все операторы (импорты, объявления функций/классов, присвоение имен результатам каких-то выражений...)

Мне кажется вам стоит скачать книжку Лутца про изучение питона с нуля и вдумчиво прочитать. По порядку.
Здравствуйте, удалось найти решение? Мой код такой, но проблема у меня в другом. Бот пишет: "Анфиса всегда должна говорить приветствие в начале каждого ответа!"... Как это понимать? В чем проблема? Ошибка в коде? Алгоритме? или что? Куратор не отвечает. 
Результат выводит вроде нормально, если убрать элемент из списка, слово "друзья" склоняется как надо, количество элементов тоже меняется. Приветствие уже пробовала ставить везде: и сразу в начале функции, и в каждом условии отдельно, и отдельной функцией прописывала, ошибка остается. 

Из-за этой проблемы, пока не разберусь, не могу двигаться дальше.

FRIENDS = ['Серёга', 'Соня', 'Дима', 'Алина', 'Егор']
def process_query(query):
# перенесите в функцию process_query() вот этот код:
    
    if query=="Сколько у меня друзей?":
        print("Привет, я Анфиса!")
        count = len(FRIENDS)
        print_friends_count(count)
        return

    else:
        print("Привет, я Анфиса!")
        print("<неизвестный запрос>")
def print_friends_count(friends_count):
    if friends_count == 1:
        print('У тебя 1 друг')
    elif 2 <= friends_count <= 4:
        print('У тебя ' + str(friends_count) + ' друга')
    elif friends_count >= 5:
        print('У тебя ' + str(friends_count) + ' друзей')

process_query("Сколько у меня друзей?")
process_query("Как меня зовут?")