@palma1331

Как повторить с помощью pyTelegramBotAPI?

Как написать так же?5f63b81984287792782367.jpeg
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 4
shurshur
@shurshur
Смотреть в сторону register_next_step_handler в документации. В случае непонимания документации - заплатить тому, кто понимает (фриланс).
Ответ написан
777admin777
@777admin777
it
В одной функции записать 2 инпута и при выполнении команды через бота вызывать данную функцию
def getcolor (a) :
    color = input("Цвет:")
    number = input("Номер:")
    print("Информация:" /n + "Цвет:" + color + /n + "Номер:" + number )
что то типо этого
Ответ написан
@TrickyOstrich
Доброго дня!
Для того, что бы вы могли обращаться к данным, которые описаны вне функций, вам необходимо до функций объявить место, где они могут хранится. Например словарь и классы. Для того, что бы у каждого пользователя была возможность сохранить свой цвет и номер (а не у каждого пользователя выводился один и тот же номер и цвет который прописал первый пользователь), необходимо сделать ссылку на идентификатор пользователя.

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()


Проверил, вроде работает как спрашивали)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
deeplay Новосибирск
от 130 000 ₽
Enjoy PRO Санкт-Петербург
от 140 000 до 180 000 ₽
от 130 000 ₽