Мое заявление while звучит странно, и я не уверен, что не так

Мой код не работает, и я не уверен, что происходит. Проблема в том, что когда я в первый раз ввожу "Y", он по-прежнему говорит: "Пожалуйста, введите верный ввод", и мне нужно повторно ввести его еще раз, чтобы он работал.

if getoutofbed == "y":
    outofbed = 1
    print("You chose to get out of bed.")
elif getoutofbed == "n":
    outofbed = 2
    print("Your mom disregards your choice and screams at you to get out of bed. Listening to your mother, you step off the ledge of your resting place.")
    print("    .@@@@,")
    print("    aa`@@@,",name.upper(),"I DONT CARE IF YOU DONT WANNA GET UP!")
    print("    =  `@@@ GET UP!")
    print("      )_/`@'")
    print("     / || @")
    print("     | || @")
    print("     /~|| `")
    print("    /__W_/")
    print("      |||")
    print("     _|||")
    print("    ((___)")
    print("")
    print("")
while outofbed != 1 or 2:
    print("Please enter a valid input.")
    print("")
    print("")
    getoutofbed = input("Choose to get out of bed? Y/N").lower()
    print("")
    print("")
    if getoutofbed == "y":
        print("You chose to get out of bed.")
        break
    elif getoutofbed == "n":
        print("    .@@@@,")
        print("    aa`@@@,",name.upper(),"I DONT CARE IF YOU DONT WANNA GET UP!")
        print("    =  `@@@ GET UP!")
        print("      )_/`@'")
        print("     / || @")
        print("     | || @")
        print("     /~|| `")
        print("    /__W_/")
        print("      |||")
        print("     _|||")
        print("    ((___)")
        break

1 ответ

Вы должны изменить свой оператор while.

Даже когда outofbed != 1 оценивает False, 2 будет оценивать True потому что это "правдивая" ценность. Измените это на это:

while outofbed != 1 and outofbed != 2:

Надеюсь это поможет

Другие вопросы по тегам