@TyGGer4ik

Почему функция не возвращает значения?

не работает в выделенной области помогите пожалуйста
должно быть в формате:
*ввод* 2 + 2
*вывод* 4
import telebot
import datetime
import random
from config import TOKEN
from telebot import types

bot = telebot.TeleBot(token=TOKEN)
@bot.message_handler(commands=['start'])
def start(message):
    keybord_1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button_1 = types.KeyboardButton('Точное время')
    button_2 = types.KeyboardButton('Случайное число')
    button_3 = types.KeyboardButton('Калькулятор')
    keybord_1.add(button_1, button_2, button_3)
    mesage = 'Привет' +' ' + message.from_user.first_name
    bot.send_message(message.chat.id, mesage, parse_mode='html',reply_markup=keybord_1)

@bot.message_handler(content_types=['text'])
def random_and_time_and_calc(message):
    print(message)
    if message.chat.type == 'private':
        if message.text == 'Точное время':
            datetime_now = datetime.datetime.now()
            time_now = str(datetime_now.time())
            time_now = time_now[:-7]
            bot.send_message(message.chat.id, time_now, parse_mode='html')
        elif message.text == 'Случайное число':
            bot.send_message(message.chat.id, random.randint(1, 100))
        elif message.text == 'Калькулятор':
            bot.send_message(message.chat.id, 'Введите любой пример или математическое действие')
#=======================================
            @bot.message_handler(content_types=['text'])
            def calc(message):
                bot.send_message(message.chat.id, eval(message.text))
#=========================================
bot.polling(none_stop=True)
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
@oneLEAM
Предлагаю вам убрать декоратор перед def calc и положите эту функцию куда нибудь повыше.
А там где вы просите ввести мат. действие вместо того что у вас стоит поставьте это:
bot.register_next_step_handler('Введите любой пример или математическое действие',  calc)

Вроде должно работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы