Я вижу это так
import telebot
from telebot import types
# рекомендую это всегда использовать в телеботе чтобы он не падал
telebot.apihelper.SESSION_TIME_TO_LIVE = 5 * 60
bot = telebot.TeleBot(TOKEN)
menu = ['Спорт', 'Дети', 'Театр', 'Кино', 'Туризм',
'Мастер класс/Обучение', 'Концерт', 'Музеи и Галереи',
'Вечеринки', 'Впечатления', 'Акции/Скидки']
def keyboard_menu(list_menu: list):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*list_menu)
return keyboard
@bot.message_handler(commands=['start', 'help'])
def start_message(message):
chat_id = message.chat.id
file = open('data/pic/testing.png', 'rb')
bot.send_photo(chat_id, file, 'Поздравляем! Подписка прошла успешно! Узнавайте первыми о событиях!'
'Нажмите любую клавишу')
bot.send_message(chat_id, 'выбор категории',
reply_markup=keyboard_menu(menu))
@bot.message_handler(content_types=['text'])
def choice(message):
chat_id = message.chat.id
index = menu.index(message.text)
bot.send_message(chat_id, f'Выбран пункт {menu[index]}')
bot.infinity_polling()