Задать вопрос
Ответы пользователя по тегу Боты
  • Как сделать выдачу для группы?

    longpoll.listen() получает одно событие за итерацию и не приступает к следующему, пока не закончит с текущим. Если событие было получено пока выполнение предыдущего не завершилось, оно не будет выполнено.
    Когда от пользователя было получено "тм1", условие
    elif response == 'тм1':
    стало истинным и начал выполняться соответствующий блок кода. Так как весь блок не выполнился и не было получено следующее событие, условие
    if response == 'сегодня':
    ложно, соответственно, блок кода, следующий за ним, не будет выполнен.
    Чтобы этого избежать, необходимо поместить условие за пределами elif response == 'тм1'. В таком случае, чтобы выполнение блока кода происходило только когда последовательно придёт сначала "тм1", а затем "сегодня", можно добавить переменную типа bool, которая по умолчанию ложна, а при вводе "тм1" истинна.
    group = False
    elif response == 'тм1':
        group = True
    
    elif response == 'сегодня' and group:
        ...
    Ответ написан
    3 комментария