Хочу прописать арифметические действия телеграм боту. Как это сделать?
Я не понимаю как сделать функционал боту на Python(PyTelegramBotAPI), чтобы бот принимал одно число, потом второе после чего выводил результат. Найти хорошие гайды на эту тему я не смог, потому спрашиваю здесь. Заранее спасибо.
Вот сам код:
import telebot
from telebot import types
bot = telebot.TeleBot('MY TOKEN')
@bot.message_handler(commands=['start'])
def start(message) :
mess = f'Привет,{message.from_user.first_name}{message.from_user.last_name}, введи /calculate для начала расчёта'
bot.send_message(message.chat.id, mess)
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
Сделайте handler для команды calculate (по аналогии с start).
Затем запросите число, действие, число.
Также вы можете просто после команды calculate попросить пользователя отправить выражение/уравнение, распознать его и прислать ответ.
Читай на тему finite state machine. Не знаю конкретно насчёт telebot, а другие библиотеки содержат эту фичу.
Но в целом идея несложная - ты должен для каждого пользователя помнить, на каком шаге он находится (ожидание первого числа, ожидание оператора, ожидание второго числа) и что он вводил раньше. Получив сообщение, смотришь по ID пользователя его шаг, и обрабатываешь текст сообщения соответственно. Можно это и вручную реализовать.
Хранение сведений можно для начала реализовать в простом словаре, если нет нужды, чтобы бот помнил происходящее после перезапуска.