@LikeKey

Выводит то, чего по идее выводить не должно?

Пишу бота в вк

Есть функция, проверяющая правильность ответа:
def verification(self, mess):
    while True:
        for self.event in self.longpoll.listen():
            if self.event.type == VkEventType.MESSAGE_NEW:
                if self.event.from_user and self.event.to_me:
                    response = self.event.text.upper()
                    if response == self.answer.upper():  #Если ответ верный, то 
                        self.send_msg('Верно! Следующий вопрос..')  #Отправляется сообщение
                        self.send_msg(self.new_message(mess), self.new_keyboard(mess)) #Отправляется новый вопрос

                    elif response == self.listOfAnswer[0] or response == self.listOfAnswer[1] or response == self.listOfAnswer[2] or response == self.listOfAnswer[3]:  #Если ответ неверный
                        self.send_msg('Не правильно! Следующий вопрос..') #Отправляется сообщения
                        self.send_msg(self.new_message(mess), self.new_keyboard(mess)) #Отправляется новый вопрос

                    elif response == 'ВЕРНУТЬСЯ К СПИСКУ ПРЕДМЕТОВ':  #Если пользователь хочет выйти, то сначала вызывается break и программа выходит из цикла for, далее выходит из цикла while и функция завершается
                        break
        break


Так вот в чем проблема - когда пользователь ответил на вопрос (верно/неверно) и нажал на "вернуться к списку предметов", то сначала ему выводится сообщение Error (которое я указал в функции проверки нового сообщения в блоке else). Выводится оно столько раз, сколько раз пользователь верно/неверно ответил на вопрос. Если этот блок else убрать, то у меня выводится ошибка "Нельзя отправить пустое сообщение пользователю
5d8986f9bc93e869336629.png
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
попробуйте соблюдать отступы
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы