Я пишу текстовое приключение на Python.
В целом: я хочу, чтобы люди могли допускать ошибки из-за неправильных ответов. Если они не напишут правильный ответ, например «1» или «2», их следует отправить обратно с помощью цикла, пока они не введут жизнеспособный ответ, не нарушая весь код и не начав все заново.
Как упоминалось в заголовке: у меня проблема с последовательными циклами if-query (с elif else и т. д.). Я нашел хорошую функцию while только для одного запроса. (здесь, о переполнении стека. Спасибо за это) Но попытка реализовать это для последовательных if-запросов, ведущих к следующему, не работает. Первый if-запрос работает нормально, но после перехода ко второму, например, при написании тарабарщины, вместо того, чтобы возвращаться ко второму вопросу, я снова получаю команду send к первому (!)...
Я пытался добавить «else: -continue...» в каждый (!) if-запрос, даже с несколькими « while True:» после каждого запроса... но это приводило к бесконечным циклам...
>
Я новичок в Python, но слышал, что, возможно, могут работать функции switch/case?
И все же, может быть, есть более эффективный способ?
Большое спасибо за ваше время и усилия!
пока True: вопрос1 = ввод("вопрос1") если вопрос1 =="1": печать("Неверно") перерыв элиф вопрос1 == "2": print("Хорошо, продолжайте!") вопрос2 = ввод("вопрос2") если вопрос2 == "1": печать("Неверно") перерыв элиф вопрос2 == "2": print("Хорошо, продолжайте!") вопрос3 = ввод("вопрос3") если вопрос3 == "1": печать («неправильно») перерыв элиф вопрос3 == "2": print("Хорошо, продолжайте!") покидать() еще: print("Используйте правильный ответ!") продолжать
Мобильная версия