@skylazy

Как сделать чтобы бот ждал ответа, а уже затем присылал следующий вопрос?

bot.message_handler(commands=['quiz'])
def quiz_questions(message):
    chat_id = message.chat.id
    user_scores = scores.get(chat_id, 0)
    score_message = f"Текущий счёт: {user_scores}"
    bot.send_message(chat_id, score_message)

    for num, question in enumerate(questions):
        options = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True)
        ans_options = answers[num]

        options.add(telebot.types.KeyboardButton(ans_options[0]))
        options.add(telebot.types.KeyboardButton(ans_options[1]))
        options.add(telebot.types.KeyboardButton(ans_options[2]))
        options.add(telebot.types.KeyboardButton(ans_options[3]))

        question_message = f"{num+1}. {question}"
        bot.send_message(chat_id, question_message, reply_markup=options)
        bot.register_next_step_handler(message, check_answer, num)

def check_answer(message, question_num):
    chat_id = message.chat.id
    user_answer = message.text
    correct_answer = correct_answers[question_num]

    if user_answer == correct_answer:
        user_scores = scores.get(chat_id, 0)
        user_scores += 1
        scores[chat_id] = user_scores
        reply_message = "Правильно!"
    else:
        reply_message = "Неправильно."

    bot.send_message(chat_id, reply_message)
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
XmurCat
@XmurCat
начинающий програмист
как я понял ты пытаешься сделать бота для телеграмм. я делал бота и я добавлял
@bot.message_handler(content_types=['text'])  #Создаём новую функцию ,реагирующую на любое сообщение
        def message_input_step(message):
                print('ожидание сообщения')
                asf = message.text
                bot.send_message(message.chat_id, text=f"сообшение от:{message.chat.id}\nСообщение:{asf}")
                bot.reply_to(message, 'отправленно')      
        bot.register_next_step_handler(message, message_input_step,) #запускаем созданую функцию выше

код взял со своего бота. думаю принцип понятен будет. возможно я не знаю но есть способ проще написать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект