Напиши скрипт на Python для телеграмм-бота с помощью библиотеки telebot Калькулятор дробей где ты просто вводишь пример с смешанными или просто дробями например: 3 4/5 + 6/7 и он ее решает
Ответы
Відповідь: прости если коментарии не грамотно - я не рус
не забудь скачать библиотеку, пип инстал и все дела тд(pip install pyTelegramBotAPI)
import telebot
from fractions import Fraction
import re
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN' #ЗАМЕНИ НА СВОЙ ТОКЕН
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(func=lambda message: True)
def calculate_fraction(message): # заявляем функцию саму эту
try:
#Получение введенного пользователем выражения
expression = message.text
# Замена символа "÷" на "/"
expression = expression.replace('÷', '/')
# Замена пробелов перед "/", чтобы избежать ошибок при разборе.
expression = re.sub(r'\s+/', '/', expression)
#Разбор выражения с помощью регулярных выражений,типо
match = re.match(r'(\-?\d+\s*\d*\/\d+)\s*([\+\-\*\/])\s*(\-?\d+\s*\d*\/\d+)', expression)
if match:
num1 = match.group(1)
operator = match.group(2)
num2 = match.group(3)
#считаем выражение
result = eval(f'Fraction("{num1}") {operator} Fraction("{num2}")')
#eval(evaluate с англ) это типо калькулятор в пайтоне, f- fragmented выступает цитатой как print.
#ТУТ отправляем результат пользователю
bot.reply_to(message, f"Результат: {result}")
else: #условие на если-что.(мало-ли юзер дичь вводит)
bot.reply_to(message, "Неверный формат выражения. Введите выражение в формате 'a b/c + d e/f'.")
except Exception as e:
bot.reply_to(message, f"Произошла ошибка: {str(e)}")
if __name__ == "__main__":
bot.polling(none_stop=True)