Заворачивание цикла в другой цикл в Python? - PullRequest
0 голосов
/ 13 февраля 2019

Цель:

  • Если пользователь вводит «правильно» первые два раза, смайлик становится грустным, поскольку он не может выбраться из леса.

  • Если пользователь печатает «вправо» в третий, четвертый, пятый раз и так далее, смайлик расстраивается, рубит несколько деревьев, делает стол и переворачивает его.

  • Если пользователь вводит что-либо еще, пользователю показывается сообщение с сообщением «Неверный ввод», и ему снова предлагается ввести данные.

  • Если пользователь вводит «left», смайликвыходит из леса и программа завершается.

Код Python:

n = input("You are in the Lost Forest\n****************\n****************\n :)\n****************\n****************\nGo left or right? ")
i = 1
while (n.lower() == "right"):
    if i < 3:    
        n = input("You are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? ")
    elif i >= 3:
        n = input("You are in the Lost Forest\n****************\n******       ***\n  (╯°□°)╯︵ ┻━┻\n****************\n****************\nGo left or right? ")
    i = i + 1    
while (n.lower() != "right") and (n.lower() != "left"):
    n = input("Invalid Input\nYou are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? ")    
while (n.lower() == "left"):
    print("\nYou got out of the Lost Forest!\n\o/")
    break

Ошибка:

Если пользователь вводит что-либо кроме "вправо "или" влево "в течение первых двух раз, а затем ввод" вправо ", программа немедленно завершает работу, не давая возможности ввести" влево ".

Как мне отредактировать код?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Больше похоже на это:

lost = "You are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? "
inp = lost
rightCount = 0
while True:
    n = input(inp)
    if (n.lower() == "right"):
        rightCount = rightCount + 1
        if rightCount > 3:
            inp = ("You are in the Lost Forest\n****************\n******       ***\n  (╯°□°)╯︵ ┻━┻\n****************\n****************\nGo left or right? ")
        else:
           inp = lost  
    elif n.lower() == "left":
        print("\nYou got out of the Lost Forest!\n\o/")    #syntax error fixed
        break
    else:
        inp = ("Invalid Input\nYou are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? ")  
0 голосов
/ 13 февраля 2019

Полагаю, вы забыли обернуть все в цикл while True (или другой вид бесконечного цикла).

Это то, что вам нужно?

while True:
    n = input("You are in the Lost Forest\n****************\n****************\n :)\n****************\n****************\nGo left or right? ")
    i = 1
    if (n.lower() == "right"):
        if i < 3:    
            n = input("You are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? ")
        elif i >= 3:
            n = input("You are in the Lost Forest\n****************\n******       ***\n  (╯°□°)╯︵ ┻━┻\n****************\n****************\nGo left or right? ")
        i = i + 1    
    if (n.lower() != "right") and (n.lower() != "left"):
        n = input("Invalid Input\nYou are in the Lost Forest\n****************\n****************\n :(\n****************\n****************\nGo left or right? ")    
    if (n.lower() == "left"):
        print("\nYou got out of the Lost Forest!\n\o/")
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...