Как реализовать код который последовательно задаёт вопрос и в конце суммирует ответы?

Не могу понять с чего начать писать код. требуется чтобы после команды /count "Ведите цену:" вводят например: 5 Бот вставлял это число в уравнение: 50x. Затем задавал следующий вопрос "Ведите вторую цену:" И эту вторую цену вставлял в уравнение: 40x и т.д.

и в результате выдавал сумму двух этих цен

Например:

Введите цену
10
Введите 2 цену
20
Итог 1300
@bot.message_handler(commands=['count'])
def count(message):
    text = f'Цена 1'

    bot.send_message(message.chat.id, text )
    bot.register_next_step_handler(message, count2)


def count2(message):
    text2 = f'Цена 2'

    bot.send_message(message.chat.id, text2)
    bot.register_next_step_handler(message, result)


def result(message):
    if message.text.isdigit():
        res = int(chena + chena2)
        bot.send_message(message.chat.id, f'Общая цена {res}  ')
        bot.clear_step_handler(message)
    else:
        bot.send_message(message.chat.id, 'Ты что, тупой? Введи только цифры')

введите сюда описание изображения


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

Автор решения: Vanilka

Для перехода на другую функцию в telebot нужно использовать register_next_step_handler. Вначале создаем список, в него будем помещать наши цены. Далее получаем текст из сообщение переводим его в int (на всякий) и помещаем в конец списка. Переходим в count2 получаем еще одно сообщение и суммируем.

user_data = [] # Вспомогательная переменная для хранения цен

@bot.message_handler(commands=['count'])
def cmd_start(message):
    bot.send_message(message.chat.id, "Введите цену 1:")
    bot.register_next_step_handler(message, count1)

def count1(message):
    if message.text.isdigit():
        user_data.append(int(message.text)) # Сохраняем первую цену в лист user_data
        bot.send_message(message.chat.id, "Введите цену 2:")
        bot.register_next_step_handler(message, count2)
    else:
        bot.send_message(message.chat.id, "Пожалуйста, введите только цифры.")
        bot.register_next_step_handler(message, count1)

def count2(message):
    if message.text.isdigit():
        first_price = user_data[0]
        second_price = int(message.text) # Получаем вторую цену из сообщения

        result = (first_price * 50) + (second_price * 40)
        bot.send_message(message.chat.id, f"Итог: {result}")
        user_data.clear() # Очищаем наш список
    else:
        bot.send_message(message.chat.id, "Пожалуйста, введите только цифры.")
        bot.register_next_step_handler(message, count2)
→ Ссылка