So i am making a quiz Bot for Telegram using Python Telebot. I would like to use IF, ELSE statement in " While " statement
while message.text == str(q7s1.text) or str(q7s2.text) or str(q7s3.text) or str(q7s4.text):
if message.text == "Провести тест":
markup = telebot.types.ReplyKeyboardRemove()
bot.send_message(message.chat.id, "Ну хорошо, поехали!".format(message.from_user, bot.get_me()), reply_markup = markup)
time.sleep(1.5)
bot.send_message(message.chat.id, "Группа #1".format(message.from_user, bot.get_me()), reply_markup = q1)
print (str(q1s1.text))
break
elif message.text == str(q1s1.text) or str(q1s2.text) or str(q1s3.text) or str(q1s4.text):
q1 = telebot.types.ReplyKeyboardRemove()
time.sleep(1)
bot.send_message(message.chat.id, "Вы ответили на 1 из 21 вопросов".format(message.from_user, bot.get_me()), reply_markup = q1)
time.sleep(2)
bot.send_message(message.chat.id, "Группа #2".format(message.from_user, bot.get_me()), reply_markup = q2)
break
elif message.text == str(q2s1.text) or str(q2s2.text) or str(q2s3.text) or str(q2s4.text):
q2 = telebot.types.ReplyKeyboardRemove()
time.sleep(1)
bot.send_message(message.chat.id, "Вы ответили на 2 из 21 вопросов".format(message.from_user, bot.get_me()), reply_markup = q2)
time.sleep(2)
bot.send_message(message.chat.id, "Группа #3".format(message.from_user, bot.get_me()), reply_markup = q3)
break
elif message.text == str(q3s1.text) or str(q3s2.text) or str(q3s3.text) or str(q3s4.text):
q3 = telebot.types.ReplyKeyboardRemove()
time.sleep(1)
bot.send_message(message.chat.id, "Вы ответили на 3 из 21 вопросов".format(message.from_user, bot.get_me()), reply_markup = q3)
time.sleep(2)
bot.send_message(message.chat.id, "Группа #4".format(message.from_user, bot.get_me()), reply_markup = q4)
break
The first If statement works, when the statement goes to ELIF, it doesnt pass to #3. And just repetes in elif #2. I have no mistakes in q1,q2 options. Hope you will help!
Aucun commentaire:
Enregistrer un commentaire