多个'或'on while循环

时间:2013-11-19 20:40:38

标签: python python-2.7

嗨,我是一个蟒蛇新手所以请对我很轻松:) 假设我有:

while input != 'n' or input != 'r' or input != 'e':

有没有办法缩短该陈述?

3 个答案:

答案 0 :(得分:7)

您可以使用not in来测试会员资格:

# Please do not name a variable `input` -- doing so overshadows the built-in.
while inp not in ('n', 'r', 'e'):

另外,根据此代码的用途,您可能希望使用str.lower,如下所示:

while inp.lower() not in ('n', 'r', 'e'):

执行此操作将允许您处理大写字母。


编辑以回复评论:

有两种方法可以构建此循环。第一个是这样的:

player_input = raw_input("Enter a character: ")
while player_input not in ('n', 'r', 'e'):
    player_input = raw_input("Enter a character: ")

第二个是这样的:

while True:
    player_input = raw_input("Enter a character: ")
    if player_input in ('n', 'r', 'e'):
        break

虽然我个人更喜欢第二种解决方案,但他们最终都做同样的事情,所以你可以选择你喜欢的。

答案 1 :(得分:4)

你可以写:

while not input in "enr":
    ...

或(更清楚):

while not input in ('e', 'r', 'n'):
    ..

答案 2 :(得分:-1)

l=['n','r','e']
while input not in l:

希望这有帮助!