嗨,我是一个蟒蛇新手所以请对我很轻松:) 假设我有:
while input != 'n' or input != 'r' or input != 'e':
有没有办法缩短该陈述?
答案 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:
希望这有帮助!