Сформируйте ответ до его отправки (в проверках), а после - вызовите отправку сообщения. Таким образом вы отправите именно то, что необходимо
Не особо сильно "умею в питон", но вероятно, что-то вроде такого:
kb = types.ReplyKeyboardMarkup(True)
bot_answer = ""
#стартовая проверка на то, что ты студент и вывод студенческой клавиатуры
connect = sqlite3.connect('users.db')
cursor = connect.cursor()
for user in cursor.execute('SELECT * FROM login_id ORDER BY id'):
if message.chat.id == user[0]:
kb.row('Звонки')
kb.row('☔️ Погода ☀️')
bot_answer = "Приветствую, студент.\nТы попал в чат-бот Беловского педагогического колледжа.\n\nНапиши /help чтобы ознакомиться с функциями."
connect.commit()
# Тоже самое, но для админов
connect = sqlite3.connect('admins.db')
cursor = connect.cursor()
for admin in cursor.execute('SELECT * FROM admins_id ORDER BY id'):
if message.chat.id == admin[0]:
kb.row('Звонки')
kb.row('☔️ Погода ☀️')
kb.row('✉️ Рассылка ')
bot_answer = "Здравствуйте, вы являетесь администратором чат-бота.\n\nНапишите /ahelp чтобы ознакомиться с функциям."
connect.commit()
# Отправка сообщения
bot.send_message(message.chat.id, bot_answer, reply_markup=kb)
#- - - - - - - - - - - - - - - -