Несколько показов в Python - PullRequest
0 голосов
/ 14 июля 2011

У меня есть 5 разных строк, которые я ищу в текстовом файле. Я пытаюсь заставить python запросить у пользователя «номер комнаты» и, если какое-либо из этих номеров совпадает, продолжить, в противном случае запросить еще раз, пока не будет введен правильный номер.

Я могу заставить его работать, если попробую:

roomNumber = input("Enter the room number: ")
while roomNumber != ("L1"):
    roomNumber = input ("Please enter a correct room number:")

Однако я бы хотел, чтобы у L1, L2, L3, L4 и L5 было положительное совпадение.

Я пытался:

roomNumber = input("Enter the room number: ")
while roomNumber != ("L1", "L2", "L3", "L4", "L5"):
    roomNumber = input ("Please enter a correct room number:")

однако это не работает, и я предполагаю, что он хочет все эти совпадения, а не только один. Я также попытался поместить каждое значение в ([]), а также попытался использовать OR между каждым значением, но тоже не сработало.

Я искал возрасты и не могу найти примеры нескольких совпадений в цикле while.

Конечно, мне не хватает чего-то простого?

Ответы [ 2 ]

7 голосов
/ 14 июля 2011

В Python есть оператор in / not in, который полезен для таких вещей:

while roomNumber not in ("L1", "L2", "L3", "L4", "L5"):
    ...

Он работает практически для любого типа контейнера в Python;все следующее верно:

1 in [1, 2, 3]
3 in range(50)
"foo" in { "foo": "bar" }
"bar" not in { "foo": "bar" } # (it only looks at keys for dictionaries)
2 голосов
/ 14 июля 2011

Использование in:

while not roomNumber in ("L1", "L2", "L3", "L4", "L5"):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...