Задать вопрос
@Kapuzev

Что не так в моем коде?

import telebot
import constants
from telebot import apihelper
proxy = constants.ip+":"+constants.port
apihelper.proxy = {'https': proxy}
bot = telebot.TeleBot(constants.token1)



@bot.message_handler(commands=['admin'])
def hendle_admin(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
    user_markup.row('Отмена')
    msg = bot.send_message(message.chat.id, "Введите пароль", reply_markup = user_markup)
    bot.register_next_step_handler(msg, handle_admin_password)


def handle_admin_password(message):

    if message.text == constants.password:

        bot.send_message(message.chat.id, "Пароль верен")

        user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
        user_markup.row('Алгебра', 'Геометрия', 'Русский', 'Литература')
        user_markup.row('Химия', 'Физика', 'Немецкий', 'Биология')
        user_markup.row('История', 'Обществознание', 'География', 'Информатика')
        user_markup.row('АнглийскийСА', 'АнглийскийТА', 'Физкультура', 'Обж')
        user_markup.row('/start')
        msg = bot.send_message(message.chat.id, "Выберите предмет", reply_markup=user_markup)

        bot.register_next_step_handler(msg, handle_admin_dz)


    elif message.text == 'Отмена':
        user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
        user_markup.row('/admin')
        user_markup.row('/start')
        bot.send_message(message.chat.id, "Вы уверенны?", reply_markup = user_markup)


def handle_admin_dz(message):
    if message.text == "Алгебра":
        Algebra = bot.send_message(message.chat.id, "Запишите дз")

    elif message.text == "Геометрия":
        Geom = bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Русский":
        Rus = bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Литература":
        Lit = bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Химия":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Физика":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Немецкий":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "История":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Обществознание":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "География":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Информатика":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "АнглийскийСА":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "АнглийскийТА":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Физкультура":
        bot.send_message(message.chat.id, "Запишите дз")
    elif message.text == "Обж":
        bot.send_message(message.chat.id, "Запишите дз")



@bot.message_handler(commands=['help', 'start'])
def hendle_start(message):

    user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
    user_markup.row('Понедельник', 'Вторник', 'Среда')
    user_markup.row('Четверг', 'Пятница', 'Суббота')
    user_markup.row('/admin')
    bot.send_message(message.chat.id, "Выберите день недели", reply_markup = user_markup) #включен

    @bot.message_handler(content_types='text')
    def hendle_text(message):
        if message.text == "Понедельник":
            den = 'ПОНЕДЕЛЬНИК'
            '#Алгебра:' + handle_admin_dz.Algebra
#Физика:
#Обществознание:
#История:
#Информатика:'
            bot.send_message(message.chat.id, den)
        elif message.text == "Вторник":
            den = 'ВТОРНИК' \

            bot.send_message(message.chat.id, den)
        elif message.text == "Среда":
            den = 'СРЕДА'
            bot.send_message(message.chat.id, den)
        elif message.text == "Четверг":
            den = 'ЧЕТВЕРГ'
            bot.send_message(message.chat.id, den)
        elif message.text == "Пятница":
            den = 'ПЯТНИЦА'
            bot.send_message(message.chat.id, den)
        elif message.text == "Суббота":
            den = 'СУББОТА'
            bot.send_message(message.chat.id, den)




bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 176 просмотров
Подписаться 2 Средний 15 комментариев
Решения вопроса 1
@antonksa
den = 'ПОНЕДЕЛЬНИК'
    '#Алгебра:' + handle_admin_dz.Algebra

ёпта, это в мемориз.
Особенно учитывая
Algebra = bot.send_message(message.chat.id, "Запишите дз")

Даже если бы можно было выковырять переменную из функции, нарушив принципы инкапсуляции, то что вы пытаетесь сделать? Сложить строку с чем? С функцией? Результатом исполнения функции?

У вас нормальный код, но нужно его привести к виду, который соответствует синтаксису. Вы не можете ломать питон через колено пытаясь заставить его работать так, как он не может в принципе.

Напишите функцию получения текста сообщения. Вызовите ее. Сохраните результат в переменную. Используйте ее для отправки сообщения.
def handle_admin_dz(message):
    if message.text in {
        "Алгебра", "Геометрия", "Русский", ...
    }:
        response_text = "Запишите дз"
    else:
        response_text = "Неизвестный раздел!"
    return response_text

@bot.message_handler(content_types='text')
def handle_text(message):
    if message.text == "Понедельник":
        response_text = handle_admin_dz(message)
        den = 'ПОНЕДЕЛЬНИК\n#Алгебра: ' + response_text


Мне кстати непонятно, как у вас может быть одновременно message.text == "Понедельник" и == "Алгебра"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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