Как мне создать систему с ограниченными операторами if? - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь создать программу, в которой три рычага управляют системой безопасного доступа.Для каждого рычага пользователя спрашивают, тянут ли они рычаг или нет.В конце.если вытащить второй рычаг, дверь не откроется, но если потянуть первый или третий рычаг, то дверь откроется.

Предостережение в отношении этой проблемы состоит в том, что я ограничен только однимесли заявление и еще одно утверждение.Я ломал голову, но никак не могу придумать решение, которое охватывает все ситуации с помощью всего двух утверждений.

if __name__ == "__main__":
    door_one = str(input("Do you pull the first lever? "))
    door_two = str(input("Do you pull the second lever? "))
    door_three = str(input("Do you pull the third lever? "))
    if door_two == "yes":
        print("The door remains shut.")
    else:
        print("The door opens!")

Очевидно, что этот код неверен, но я не могу думать о том, как яможно уменьшить количество заявлений, чтобы удовлетворить условия выше

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Ваше условие - за исключением door_two == "yes", результат будет print("The door opens!"), независимо от того, равен ли door_two чему-либо.

0 голосов
/ 20 сентября 2019

ОБНОВЛЕНИЕ

Может быть, это то, что вам нужно заполнить:

if __name__ == "__main__":
    door_one = str(input("Do you pull the first lever? "))
    door_two = str(input("Do you pull the second lever? "))
    door_three = str(input("Do you pull the third lever? "))
    if door_two == "yes" or (door_one != 'yes' and door_two != 'yes' and door_three != 'yes'):
        print("The door remains shut.")
    else:
        print("The door opens!")

другой подход:

if __name__ == "__main__":
    levers = ['first', 'second', 'third']
    lever_vals = []
    for i in levers:
        lever_vals .append(str(input("Do you pull the %s lever? " % i)))
    if lever_vals[1] == 'yes' or all(i != 'yes' for i in lever_vals):
        print("The door remains shut.")
    else:
        print("The door opens!")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...