Почему код не работает, как задумано? Он предназначен для получения входных данных, а затем для проверки истинности / ложности до 3 раз - PullRequest
0 голосов
/ 13 января 2019

Создание вложенных условных операторов, но когда я запускаю это и первое логическое значение равно false, следующее приглашение ввода не появляется, пожалуйста, помогите

bird_names="magpie pigeon dove"
bird_guess=input("venture a guess about the bird names we have stored: ")
if bird_guess in bird_names==False:
    bird_guess=input("venture a guess about the bird names we have stored: ")
    if bird_guess in bird_names==False:
        bird_guess=input("try again ")
        if bird_guess in bird_names==False:
            print("you're out of tries")
        else:
            print("third time lucky")
    else:
        print("second time lucky")
else:
    print("first time lucky")

1 Ответ

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

Проблема оператор цепочки . bird_guess in bird_names==False оценивается как:

(bird_guess in bird_names) and (bird_names == False)

Поскольку второе выражение всегда оценивается как False, условие никогда не выполняется. Вы можете использовать скобки, чтобы избежать проблемы:

(bird_guess in bird_names) == False

Более идиоматическим является использование специального оператора not in:

bird_guess not in bird_names
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...