@Belavor

Почему не работает if else внутри в if bot telegram?

import telebot


bot = telebot.TeleBot('TOKEN')

day = (["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"])
day_0 = (
     ["10:00 - 10:50\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 216",
     "11:00 - 11:50\nМатематика 2,'лек' (и.о.доцента Оспанов М.Н.), К02. Учебный корпус №2, ФИТ, 222",
     "12:10 - 13:00\nАлгоритмы, структуры данных и программирование,'лек' (и.о. доцента Айтқожа Ж.Ж.), К02. Учебный корпус №2, ФИТ, 221"]
)

day_2 = (
     ["8:00 - 8:50\nАлгоритмы, структуры данных и программирование,'лаб' ( Адалбек А.), К02. Учебный корпус №2, ФИТ, 608",
     "9:00 - 9:50\nАлгоритмы, структуры данных и программирование,'лаб' ( Адалбек А.), К02. Учебный корпус №2, ФИТ, 608",
     "10:00 - 10:50\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711"]
)

day_3 = (
     ["10:00 - 10:50\nФизическая культура,'прак' (и.о. профессора Омаров Е.Б.)",
     "11:00 - 11:50\nФизическая культура,'прак' (и.о. профессора Омаров Е.Б.)",
     "12:10 - 13:00\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711",
     "13:10 - 14:00\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711"]
)

day_4 = (
     ["8:00 - 8:50\nИнформационно-коммуникационные технологии,'лек' (ст.преподаватель Оспанов Р.М.), К02. Учебный корпус №2, ФИТ, 712",
     "9:00 - 9:50\nИнформационно-коммуникационные технологии,'лек' (ст.преподаватель Оспанов Р.М.), К02. Учебный корпус №2, ФИТ, 712",
     "10:00 - 10:50\n Окно",
     "11:00 - 11:50\nИнформационно-коммуникационные технологии,'прак' ( Хамитова Ж.Ж.), К01. Учебный корпус №1, УАК, 352a"]
)

day_5 = (
     ["10:00 - 10:50\nМатематика 2,'прак' (ст.преп. Ахажанов Т.Б.), К02. Учебный корпус №2, ФИТ, 707",
     "11:00 - 11:50\nМатематика 2,'прак' (ст.преп. Ахажанов Т.Б.), К02. Учебный корпус №2, ФИТ, 707",
     "12:10 - 13:00\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 707",
     "13:10 - 14:00\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 707"]
)
uni_gr = (["АЖ-19/1","СИБ-23"])

keyboard1 = telebot.types.ReplyKeyboardMarkup(True,True)
keyboard1.row(f"{uni_gr[0]}",f"{uni_gr[1]}")

keyboard2 = telebot.types.ReplyKeyboardMarkup(True,True)
keyboard2.row(f"{day[0]}",f"{day[1]}",f"{day[2]}")
keyboard2.row(f"{day[3]}",f"{day[4]}",f"{day[5]}")

@bot.message_handler(commands=['start'])
def start_message(message):
     bot.send_message(message.chat.id, 'Which group you need' , reply_markup=keyboard1)


@bot.message_handler(content_types=['text'])
def send_text(message):
     if message.text == f"{uni_gr[0]}":
          bot.send_message(message.chat.id, 'Which day you need' , reply_markup=keyboard2)
          def send_shedudle(message):
               if message.text == f"{day[0]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_0[0]}\n\n{day_0[1]}\n\n{day_0[2]}')
               elif message.text == f"{day[1]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\nПар нет, отдыхаем')
               elif message.text == f"{day[2]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_2[0]}\n\n{day_2[1]}\n\n{day_2[2]}')
               elif message.text == f"{day[3]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_3[0]}\n\n{day_3[1]}\n\n{day_3[2]}n\n{day_3[3]}')
               elif message.text == f"{day[4]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_4[0]}\n\n{day_4[1]}\n\n{day_4[2]}n\n{day_4[3]}')
               elif message.text == f"{day[5]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_5[0]}\n\n{day_5[1]}\n\n{day_5[2]}\n\n{day_5[3]}')
     elif message.text == f"{uni_gr[1]}":
          if message.text == f"{day[0]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_0[0]}\n\n{day_0[1]}\n\n{day_0[2]}')
          elif message.text == f"{day[1]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\nПар нет, отдыхаем')
          elif message.text == f"{day[2]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_2[0]}\n\n{day_2[1]}\n\n{day_2[2]}')
          elif message.text == f"{day[3]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_3[0]}\n\n{day_3[1]}\n\n{day_3[2]}n\n{day_3[3]}')
          elif message.text == f"{day[4]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_4[0]}\n\n{day_4[1]}\n\n{day_4[2]}n\n{day_4[3]}')
          elif message.text == f"{day[5]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_5[0]}\n\n{day_5[1]}\n\n{day_5[2]}\n\n{day_5[3]}')
          
if __name__ == '__main__':
     bot.infinity_polling()
  • Вопрос задан
  • 1235 просмотров
Решения вопроса 2
Big_Trouble
@Big_Trouble
Программист недосамоучка
Почему не работает if else внутри в if bot telegram?

Потому что здесь так нельзя. Если коротко: ты нажимаешь выбрать группу, в функцию send_text приходить message.text с номером группы но после того как ты нажимаешь выбрать день - новый message не приходит, а и бот проверяет условие if message.text == f"{uni_gr[0]}":...

Для этого есть специальный объект bot.register_next_step_handler(message, next_step)

P.S Ну а вообще для каждой группы и дня прописывать блок условий - это как то глупо, представь если тебе захочется добавить еще 1-2 группы - это +еще 20 строчек кода. Лучше создать базу данных и тогда все эти блоки с условиями можно будет уложить в несколько строчек.

P.P.S Мне уже кажется что моя задача на этом сайте просто скидывать людям ссылку на эту страницу
Ответ написан
@Belavor Автор вопроса
msg = bot.send_message(chatId, "")
bot.register_next_step_handler(msg, send_shedudle)
def send_shedudle(message):
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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