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 == "Понедельник" и == "Алгебра"