Python 3.8.2
PyCharm 2019
Начал изучать Python. Создал бота в Телеграм. Добавил интерактивные кнопки, но выдаёт ошибку:
UnboundLocalError: local variable ‘markup’ referenced before assignment
примерно понимаю, что что имеется ввиду, что к переменной markup обращение происходит раньше, чем её присваивание, но не доходит, как исправить, чтобы дальнейшие значения(кнопки в боте) могли кликаться?
Именно при выборе кнопок 1,2,3,4 вылетает данная ошибка
import telebot from telebot import types from telebot import apihelper bot = telebot.TeleBot('token') apihelper.proxy = {"https": "socks5://96.113.176.101:1080"} @bot.message_handler(commands=['telegram']) def open_telegram(message): markup = types.InlineKeyboardMarkup() markup.add(types.InlineKeyboardButton("Написать", url="https://сайт")) bot.send_message(message.chat.id, "Ну раз уж я не могу тебе помочь, нажимай на кнопку", parse_mode='html', reply_markup=markup) @bot.message_handler(commands=['insta']) def instagram(message): markup = types.InlineKeyboardMarkup() markup.add(types.InlineKeyboardButton("Перейти в Инстаграм", url="https://сайт")) bot.send_message(message.chat.id, "Переходи.", parse_mode='html', reply_markup=markup) @bot.message_handler(commands=['poisk']) def poisk(message): markup = types.InlineKeyboardMarkup() markup.add(types.InlineKeyboardButton("Глобальный поиск", url="https://www.google.ru/")) bot.send_message(message.chat.id, "Тут ты точно найдешь, что искал.", parse_mode='html', reply_markup=markup) @bot.message_handler(commands=['start']) def start(message): markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3) btn1 = types.KeyboardButton('Виды') btn2 = types.KeyboardButton('Подвиды') btn3 = types.KeyboardButton('О нас') btn4 = types.KeyboardButton('Сюрприз') markup.add(btn1, btn2, btn3, btn4) send_mess = f"<b>Привет {message.from_user.first_name}</b>!\nСмотри что есть:" bot.send_message(message.chat.id, send_mess, parse_mode='html', reply_markup=markup) @bot.message_handler(content_types=['text']) def mess(message): get_message_bot = message.text.strip() if get_message_bot == "Начать тест заново": markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3) btn1 = types.KeyboardButton('Виды') btn2 = types.KeyboardButton('Подвиды') btn3 = types.KeyboardButton('О нас') btn4 = types.KeyboardButton('Сюрприз') btn5 = types.KeyboardButton('Начать тест заново') markup.add(btn1, btn2, btn3, btn4, btn5) final_message = "Посмотришь еще? \nКликли на вид, с которым хочешь ознакомиться:" elif get_message_bot == "Виды": markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3) btn1 = types.KeyboardButton('1') btn2 = types.KeyboardButton('2') btn3 = types.KeyboardButton('3') btn4 = types.KeyboardButton('4') btn5 = types.KeyboardButton("Начать тест заново") markup.add(btn1, btn2, btn3, btn4, btn5) final_message = "Отлично, смотри:" elif get_message_bot == "1": final_message = "1 вид примечателен тем, что........." elif get_message_bot == "2": final_message = "2 вид примечателен тем, что........." elif get_message_bot == "3": final_message = "3 вид примечателен тем, что........." elif get_message_bot == "4": final_message = "4 вид примечателен тем, что........." else: markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3) btn1 = types.KeyboardButton('Виды') btn2 = types.KeyboardButton('Подвиды') btn3 = types.KeyboardButton('О нас') btn4 = types.KeyboardButton('Сюрприз') markup.add(btn1, btn2, btn3, btn4) final_message = "Стоп!\nЛучше тыкни на кнопку" bot.send_message(message.chat.id, final_message, parse_mode='html', reply_markup=markup) bot.polling(none_stop=True)