Как в Python получить от пользователя пример, потом заставить Telegram Бота его решить?
Пользователь пишет моему боту, например "Реши пример 8+12" фраза реши пример обязательна, потому что бот реагирует на неё при решении. Мне нужно сделать так, чтобы бот отбрасывал слово "Реши пример" и писал в конце только решение тех цифр, что шли после "Реши пример".
elif message.text in config.math:
bot.send_message(message.chat.id, math_1.mathans)
config это файл, где написано на какие вопросы от юзера бот реагирует, math_1 - файл где написан следующий код:
import config
mathans = ()
Как можно это реализовать? Человек пишет "Реши пример 8+12", бот обрезает "Реши пример", решает его, потом пишет ответ. Помогите пожалуйста
Ответы (1 шт):
Могу подсказать функцию. При передаче строки она ищет контрольную фразу "Реши пример" и если она есть то берёт из второй части строки уравнение и возвращает ответ:
import re
def Math(text):
match = re.search(r"Реши пример (.*)", text) # Ищем контрольную фразу
if match:
expression = match.group(1) # Получаем математическое выражение
try:
result = eval(expression) # Вычисляем выражение
return result
except:
return "Ошибка выражения"
else:
return "Не найдена контрольная фраза"
Примеры использований:
text = "Реши пример 8+12"
print(Math(text)) # 20
text = "Реши пример 175 - 200"
print(Math(text)) # -25
text = "Реши пример 5 * 5"
print(Math(text)) # 25
text = "Реши пример 12 / 3"
print(Math(text)) # 4.0
text = "Реши пример 12 / 3 - 15 * 17"
print(Math(text)) # -251.0