在while循环中使用'not in'和'or'

时间:2013-11-18 20:40:31

标签: python python-2.7 while-loop

我正在尝试使用while循环来确保输入是我想要的。这段代码就是我想要做的一个例子。有没有办法让这项工作?

谢谢。

colours=["red","black","blue"]

colour=raw_input("enter a colour")
while colour not in colours or colour!="exit":
    colour=raw_input("enter a colour")

4 个答案:

答案 0 :(得分:2)

您需要使用and代替or

while colour not in colours and colour!="exit":

您当前的代码会不断循环,因为colour 总是不在colours或不等于"exit"

答案 1 :(得分:0)

试试这个。

while colour not in colours and not colour == "exit":

答案 2 :(得分:0)

这是我的解决方案

color_list = ["red", "black", "blue"]
while True:
    color = str(raw_input("Enter a color: ")).strip()
    if (color.lower() in color_list or color.lower() == 'exit'):
        break

答案 3 :(得分:-1)

以这种方式编写可以避免重复提示。终止条件也更自然地读取。

while True:
    colour = raw_input("enter a colour")
    if colour in colours or colour == "exit":
        break