2011-07-14 101 views
0

我有5個不同的字符串,我正在尋找一個文本文件。我試圖讓python向用戶詢問「房間號碼」,如果有任何號碼匹配,請繼續,否則再次詢問,直到輸入正確的號碼。多個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:") 

但是這不工作,我相信它希望所有的比賽,而不僅僅是一個。 我也嘗試把每個值放在一個([]),並試圖使用或每個值之間的或,但也沒有工作。

我一直在尋找年齡,似乎無法在while循環中找到多個匹配的示例。

當然,我錯過了一些簡單的東西?

回答

7

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) 
+0

+1爲可讀的句子結構。 – Aeveus

2

使用in

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