Задать вопрос
  • Как правильно встроить FSM в телеграм бот на библиотеке telebot?

    Vae_11
    @Vae_11 Автор вопроса
    import telebot
    from telebot import custom_filters, types
    from telebot.states import State, StatesGroup
    from telebot.states.sync.context import StateContext
    from telebot.storage import StateMemoryStorage
    from telebot.types import ReplyParameters
    
    storage = StateMemoryStorage()
    bot = telebot.TeleBot('TOKENN', state_storage=storage, use_class_middlewares=True)
    
    class states(StatesGroup):
        StateStart = State()
        StatePay = State()
        StateSubscribed = State()
        StateNoSubscribed = State()
        StateWaiting = State()
        
    @bot.message_handler(commands=['start'])
    def start(message: types.Message, state: StateContext):
        chat_id = message.chat.id
        user_id = message.from_user.id
        
        state.set(states.StateStart)
        bot.send_message(chat_id, f'Привет, {message.from_user.first_name}!\n/sup - оформить подписку\n/us - информация о нас')
    
    @bot.message_handler(state = states.StateStart, commands=['sup'])
    def sup(message: types.Message):
        chat_id = message.chat.id
        bot.send_message(chat_id, 'Оформить подписку')
    
    
    @bot.message_handler(state = states.StateStart, commands=['us'])
    def us(message: types.Message):    
        chat_id = message.chat.id
        bot.send_message(chat_id, 'Информация о нас')
    
    
    
    bot.add_custom_filter(custom_filters.StateFilter(bot))
    
    # necessary for state parameter in handlers.
    from telebot.states.sync.middleware import StateMiddleware
    
    bot.setup_middleware(StateMiddleware(bot))
    
    bot.polling(non_stop= True)
    Ответ написан
    Комментировать
  • Как разобраться в задании лабораторной работы?

    Vae_11
    @Vae_11 Автор вопроса
    Спасибо всем вот что я наговнокодил под Найка Борзова
    import numpy as np
    import random
    # n = size matrix
    
    values= input()
    n, dtp = values.split()
    n = int(n)
    
    if(n>0 and (dtp == "int" or dtp == "bool" or dtp == "float")):
        A = np.array([], dtype = dtp)
        A.resize(n)
        if(dtp == "int"):
            for i in range(n):
                A[i] = random.randint(-100, 100)
        if(dtp == "bool"):
            for i in range(n):
                A[i] = random.randint(0, 1)
        if(dtp == "float"):
            for i in range(n):
                A[i] = random.random()
        print(A, A.dtype)
    
    elif(n < (-2) and (dtp == "int" or dtp == "bool" or dtp == "float")):
        n = abs(n)
        A = np.array([], dtype = dtp)
        A.resize(n, n)
        for i in range(n):
            for j in range(n):
                if (i==0 or i == (n-1) or j==0 or j==(n-1)):
                    if(dtp == "int"):
                        A[i, j] = random.randint(-100, 100)
                    if(dtp == "bool"):
                        A[i, j] = random.randint(0, 1)
                    if(dtp == "float"):
                        A[i, j] = random.random()
        print(A, A.dtype)
    
    else:
        print("Error")
    Ответ написан
    Комментировать