2011-07-14 84 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"):