Как реализовать код который последовательно задаёт вопрос и в конце суммирует ответы?
Не могу понять с чего начать писать код. требуется чтобы после команды /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)
