Python PyTelegramBotApi при прохождении цикла for бот не ожидает ответа, а просто выполняет дальше и никакие register_next_step_handler не работают
@my_bot.message_handler(content_types=['text'], commands=['start_v'], func=lambda message: True)
def start_v(message):
guestions=open_task('guestions')
@my_bot.message_handler(content_types=['text'])
def register_result(message, name_task):
guestions=open_task('guestions')
mess=message.text
if dict(guestions[name_task])['result']==mess:gres.append(mess);print('g')
else:bres.append(mess);print('b')
my_bot.send_message(message.chat.id, 'Запуск викторины "{}"\nОтвет поменять нельзя\nПосле запуска каждое сообщение регистрируется как ответ на вопрос\nВыбор ответа будет происходить пока вы не отправите\выберите ответ!.'.format(open_task('name')))
bres=[]
gres=[]
var=1
for name_task in guestions.keys():
if guestions.get(name_task)['type']=='1':
value=guestions.get(name_task)['vars']
keyboard=types.ReplyKeyboardMarkup(True,True)
key1=types.KeyboardButton(text=value[0])
key2=types.KeyboardButton(text=value[1])
key3=types.KeyboardButton(text=value[2])
key4=types.KeyboardButton(text=value[3])
keyboard.add(key1, key2)
keyboard.add(key3, key4)
my_bot.send_message(message.chat.id, "Вопрос №{}:\n\t{}".format(var,name_task), reply_markup=keyboard)
my_bot.register_next_step_handler(message, register_result, name_task)
time. Sleep(2)
my_bot.send_message(message.chat.id, "Ответ засчитан")
var+=1
my_bot.send_message(message.chat.id, "Викторина завершена")
my_bot.send_message(message.chat.id, f"Результаты: \nПравильные ответы: {len(gres)}\nНеправильные ответы: {len(bres)}")
Так же у меня возникает ошибка telebot что функции register_result нужен еще один аргумент name_task
open_task() возвращает словарь но с этим я уже разобрался, если это поможет то вот как выглядит словарь:
{'Вопрос 1': {'type': '1', 'vars': ['Ответ', 'Ответ', 'Ответ', 'Ответ'], 'result': 'Ответ'}, 'Вопрос 2': {'type': '1', 'vars': ['Ответ', 'Ответ', 'Ответ', 'Ответ'], 'result': 'Ответ'}, 'Вопрос 3':
{'type': '1', 'vars': ['Ответ', 'Ответ, 'Ответ', 'Ответ'], 'result':
'Ответ'}}