@NikolaiHryshkov

Не работает код на if else elif, Python?

Почему перестает работать код?
@bot.callback_query_handler(func=lambda c:True)
def ukraine(c):
      if c.data == 'Українська': 
Все работает а вот начиная с 
def internatura(c):
Уже нет:

Пример кода:
import config
import telebot
from telebot import types
from requests import get

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=['start'])
def inline(message):
    key = types.InlineKeyboardMarkup()
    but_1 = types.InlineKeyboardButton(text="Українська", callback_data="Українська")
    but_2 = types.InlineKeyboardButton(text="English", callback_data="English")
    key.add(but_1, but_2)
    bot.send_photo(message.chat.id,open("C:\АСУ\Bot\ЕМБ.jpg","rb"))
    bot.send_message(message.chat.id, "Доброго дня " + message.from_user.first_name + ", Я бот-консультант . Радий Вас вітати.Оберіть будь ласка мову спілкування.Good day. I am a chat bot of Kyiv Medical University. Glad to welcome you. Please choose the language of communication.", reply_markup=key, )
@bot.callback_query_handler(func=lambda c:True)
def ukraine(c):
      if c.data == 'Українська':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Вступ", callback_data="Вступ")
        but_2 = types.InlineKeyboardButton(text="Післядипломна освіта", callback_data="Післядипломна освіта")
        but_3 = types.InlineKeyboardButton(text="Студенту", callback_data="Студенту")
        but_4 = types.InlineKeyboardButton(text="Довідник контактів", callback_data="Довідник контактів")
        but_5 = types.InlineKeyboardButton(text="Реквізити-Оплата", url="https://k.edu.ua/oplata/")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5)
        bot.send_message(c.message.chat.id, 'Оберіть будь ласка розділ який Вас цікавить.', reply_markup=key)
      if c.data == 'Вступ':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Вступ для вітчизняних студентів", callback_data="Вступ для вітчизняних студентів")
        but_2 = types.InlineKeyboardButton(text="Вступ для іноземних студентів", callback_data="Вступ для іноземних студентів")
        but_3 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3)
        bot.send_message(c.message.chat.id, 'Бажаєте вступити до Київського медичного університет?', reply_markup=key)
      if c.data == 'Вступ для вітчизняних студентів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Грант", callback_data="Грант")
        but_2 = types.InlineKeyboardButton(text="Календар вступника", callback_data="Календар вступника")
        but_3 = types.InlineKeyboardButton(text="Правила прийому", url="https://k.edu.ua/admission-requirements-y/")
        but_4 = types.InlineKeyboardButton(text="Програми вступних випробувань", url="https://u.edu.ua/programy-vstupnuh-viprobuvan/")
        but_5 = types.InlineKeyboardButton(text="Задати питання", url="t.me/kedu")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5)
        bot.send_message(c.message.chat.id, 'Задайте ваше питання в чаті Абітурієнт  @kedu або зателефонуйте до приймальної комісії +3806844031, +3805033701', reply_markup=key)
def internatura(c):
      if c.data == 'Післядипломна освіта':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Більше інформації на офіційному сайті", url="https://u.edu.ua/internatura-v-universiteti/")
        but_2 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        key.add(but_2)
        bot.send_message(c.message.chat.id, 'Задайте будь ласка ваше питання відділу відділу післядипломної освіти: @hrysov або зателефонуйте за номером телефону: +38 (099) 3-71-34', reply_markup=key)
def student(c):
      if c.data == 'Студенту':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Відпрацювання пропущених занять", callback_data="Відпрацювання пропущених занять")
        but_2 = types.InlineKeyboardButton(text="Довідка для військомату", url="https://u.edu.ua/dovidka-do-rvk/")
        but_3 = types.InlineKeyboardButton(text="Відновити студентський квиток", url="https://u.edu.ua/vidnoviti-studentskij-kvitok/")
        but_4 = types.InlineKeyboardButton(text="Контакти Деканатів", callback_data="Контакти Деканатів")
        but_5 = types.InlineKeyboardButton(text="Задати питання", callback_data="@kudu")
        but_6 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5, but_6)
        bot.send_message(c.message.chat.id, 'Оберіть будь ласка розділ який Вас цікавить.', reply_markup=key)
      if c.data == 'Контакти Деканатів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, config.kontdek, reply_markup=key)
      if c.data == 'Вступ для іноземних студентів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, 'Задайте будь ласка ваше питання відбіркоій комісії з прийому іноземних громадян та осіб без громадянства: @hryshkov або зателефонуйте за номером телефону: +38 (073) 2613-41', reply_markup=key)
      if c.data == 'Відпрацювання пропущених занять':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Для вітчизняних студентів", url="https://docs.google.com/forms/d/e/1FAIpQLSdVMhrSX1_s98kRzsam5Dcs8_G_uKh31-LOu_PAgfS3JemDpw/viewform")
        but_2 = types.InlineKeyboardButton(text="Для іноземних студентів", url="https://docs.google.com/forms/u/5/d/e/1FAIpQLSdwLJjlUKwu_PoBOodB_g8AfAFIwpzhATR6cnV-mzRYgRH6VQ/viewform?usp=sf_link")
        but_3 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3)
        bot.send_message(c.message.chat.id, 'Зробіть будь ласка Ваш вибір', reply_markup=key)
      if c.data == 'Довідник контактів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, config.kontdov, reply_markup=key)

if __name__ == '__main__':
    bot.polling(none_stop=True)
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
@XTerris
Декоратор используется только для одной функции. То есть только для ukraine, а остальные функции считаются как отдельные и, соответственно, не вызываются вообще.
Просто поместите всё это в одну функцию, либо вызывайте internatura и student в конце ukraine.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы