Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Шуточная пасхалка в тг-боте-калькуляторе на языке пайтон

виталя белый Ученик (95), на голосовании 1 месяц назад
Всем привет, я новичок в пайтоне, но уже написал код на тг бота-калькулятора. И я хочу сделать пасхалку, которая будет вылазить, когда человек решит написать число и поделить на ноль.

Помогите, пожалуйста:)
import telebot
import math

TOKEN = 'мой токен'
bot = telebot.TeleBot(TOKEN)

class User:
def __init__(self, id):
self.id = id
self.nickname = ""
self.email = ""
self.books = []
self.selected_lst = 0
self.status = 0

users_list = {}

@bot.message_handler(commands=['start'])
def start(message):
print("Бот запущен")
bot.reply_to(message, 'Здравствуйте! Это телеграм-бот-калькулятор. Введите выражение (например: 2 + 2) или уравнение (например: q 1 -3 2).')

def distr(a, b, c):
D = b**2 - 4*a*c
if D > 0:
x1 = (-b + math.sqrt(D)) / (2*a)
x2 = (-b - math.sqrt(D)) / (2*a)
return f"Корни уравнения: x1 = {x1}, x2 = {x2}"
elif D == 0:
x = -b / (2*a)
return f"Уравнение имеет один корень: x = {x}"
else:
return "Корней нет"

@bot.message_handler(content_types=['text'])
def calculator(message):
mes = message.text.strip().split()

# Обработка квадратного уравнения
if mes[0].lower() == 'q':
if len(mes) != 4:
bot.reply_to(message, "Для решения квадратного уравнения введите: q a b c")
return
try:
a = float(mes[1])
b = float(mes[2])
c = float(mes[3])
result = distr(a, b, c)
bot.reply_to(message, result)
except ValueError:
bot.reply_to(message, "Пожалуйста, введите корректные числа.")
except Exception as e:
bot.reply_to(message, f"Произошла ошибка: {e}")
return

# Обработка простых арифметических выражений
if len(mes) != 3:
bot.reply_to(message, "Пожалуйста, введите выражение в формате: число оператор число (например: 2 + 2)")
return

num1, operator, num2 = mes

try:
num1 = float(num1)
num2 = float(num2)

if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
if num2 == 0:
#Код для пасхалки вместо ошибки, которая внизу в скобках
(bot.reply_to(message, "Деление на ноль невозможно."))
return
result = num1 / num2
elif operator == '**':
result = num1 ** num2
else:
bot.reply_to(message, "Неизвестный оператор. Используйте +, -, *, / или **.")
return

bot.reply_to(message, f"Результат: {result}")
except ValueError:
bot.reply_to(message, "Пожалуйста, введите корректные числа.")
except Exception as e:
bot.reply_to(message, f"Произошла ошибка: {e}")

bot.infinity_polling()
Дополнен 2 месяца назад
Что нужно написать?
Голосование за лучший ответ
CausonQ Мудрец (13842) 2 месяца назад
Смотря какую пасхалку ты хочешь. Добавь вместо
Деление на ноль невозможно.
виталя белыйУченик (95) 2 месяца назад
Пасхалка в виде смешной математической фотографии
CausonQ Мудрец (13842) виталя белый, используй метод
 bot.send_photo(chat_id = 'chat_id', photo = 'file_id') 
даня я Знаток (282) 2 месяца назад
Я так понимаю ты просто скопировал от куда то код? Просто если бы ты само его писал, то быстро бы додумался заменить "Деление на ноль невозможно" на то, что ты хочешь написать.
виталя белыйУченик (95) 2 месяца назад
дело в том, что это изначально написал, а потом придумал шутку, в описании я даже поставил, где нужно код написать
даня я Знаток (282) виталя белый, #Код для пасхалки вместо ошибки, которая внизу в скобках (bot.reply_to(message, "Деление на ноль невозможно.")) Вот здесь меняй
Похожие вопросы