• Предмет: Информатика
  • Автор: Аноним
  • Вопрос задан 3 месяца назад

Напиши скрипт на Python для телеграмм-бота с помощью библиотеки telebot Калькулятор дробей где ты просто вводишь пример с смешанными или просто дробями например: 3 4/5 + 6/7 и он ее решает


archery: ага, просто
archery: вот сам и пиши
Аноним: ты тупой?
Аноним: раз не хочешь не пиши
Аноним: зачем эту бредятину пишешь мне?
Аноним: другие напишут
Аноним: бездарь б0лять

Ответы

Ответ дал: JaneClements
1

Відповідь: прости если коментарии не грамотно - я не рус

не забудь скачать библиотеку, пип инстал и все дела тд(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)


lizap5678: Офигеть ты настрочила спс
lizap5678: РАБОТАЕТ ОП ОП ОП,кст комментарии харош,норм всё :)
Вас заинтересует