bot.message_handler Бот не считывает введенные пользователем данные

После команды "старт" в боте отображается 2 кнопки на выбор, после нажатия бот должен начать запрашивать данные для ввода, обрабатывать и выводить результат. По отдельности все работает, но как только я пытаюсь объединить все, то вводимые вручную данные бот не обрабатывает. Предполагаю, что в @bot.message_handler(content_types=['text']) заложена обработка только двух конкретных текстов, а другие данные не распознаются. Но не могу найти пути решения. Только вчера начал изучить питон, видимо, слишком глубоко залез без базовых знаний. Буду благодарен, если кто-то подскажет в каком направлении копать.

#бот обрабатывает нажатие на одну из кнопок, после запрашивает данные от пользователя
@bot.message_handler(content_types=['text'])
def bot_message(message):
if message.chat.type == 'private':

    # Первый вариант вычислений
    if message.text == 'Кнопка 1':

        def first(pm):
            sent_msg = bot.send_message(pm.chat.id, '<b>Введите первое число:</b>',
                                        parse_mode='html')
            bot.register_next_step_handler(sent_msg, n_handler)

        def n_handler(pm):
            n = pm.text
            sent_msg = bot.send_message(pm.chat.id, '<b>Введите второе число:</b>', parse_mode='html')
            bot.register_next_step_handler(sent_msg, average_handler,
                                           n)

        def average_handler(pm, n):
            average = pm.text
            bot.send_message(pm.chat.id, f'<b>Результат вычислений:</b>', parse_mode='html')

        texts = list()

        x = 4.0
        while x < 5.01:
            if float(average) >= x:
                pass
            else:
                averageNew = x - 0.049

                # min
                average1 = float(average) + 0.049
                n5 = (averageNew - float(average1)) * int(n) / (5 - averageNew)
                if math.ceil(n5) < 1:
                    n5 = 1
                else:
                    n5 = math.ceil(n5)

                # max
                average2 = float(average) - 0.049
                nN = (averageNew - float(average2)) * int(n) / (5 - averageNew)
                if math.ceil(nN) < 1:
                    pass
                else:
                    nN = math.ceil(nN)

                # запись расчетов
                if nN == n5:
                    texts.append(f"{round(x, 2)} — {nN} шт.")
                else:
                    texts.append(f"{round(x, 2)} — {n5}-{nN} шт.")

                x += 0.1

        bot.send_message(pm.chat.id, "\n".join(texts), parse_mode='html')

    # Второй вариант вычислений
    elif message.text == 'Кнопка 2':
        bot.send_message(message.chat.id, '<b>В разработке.</b>', parse_mode='html')

Ответы (0 шт):