Доброго дня!
Для того, что бы вы могли обращаться к данным, которые описаны вне функций, вам необходимо до функций объявить место, где они могут хранится. Например словарь и классы. Для того, что бы у каждого пользователя была возможность сохранить свой цвет и номер (а не у каждого пользователя выводился один и тот же номер и цвет который прописал первый пользователь), необходимо сделать ссылку на идентификатор пользователя.
bot = telebot.TeleBot(tok.tok)
user_dict = {}
class User:
def __init__(self, colour):
self.col= colour
self.num= None
@bot.message_handler(commands=['start'])
def startmessage(message):
bot.register_next_step_handler(bot.send_message(message.from_user.id, 'Цвет?'), colour_choose)
def colour_choose (message):
colour = message.text
user_colour = User(colour)
#Добавялем экземпляр класса текущего пользователя в наш словарь
user_dict[message.from_user.id] = user_colour
bot.register_next_step_handler(bot.send_message(message.from_user.id, 'Номер?'), num_choose)
def num_choose(message):
num = message.text
# Добавляем в наш уже созданный экземпляр класса номер
user_dict[message.from_user.id].num = num
bot.send_message( message.from_user.id, f'Информация: \n Цвет: {user_dict[message.from_user.id].col} \n Номер: {user_dict[message.from_user.id].num}')
bot.polling()
Проверил, вроде работает как спрашивали)