我该如何修复这个python循环?

时间:2013-09-13 04:35:37

标签: python python-3.x

outcome=input("higher or lower")

while (outcome!= 'h' or outcome!= 'l'): 
    outcome=input("enter h or l")

print("its working")

即使我写H或L

,while循环仍然继续

1 个答案:

答案 0 :(得分:6)

您需要and而不是or

我们假设小写/大写问题不是问题而您输入h而不是H

您的表达将是:

'h' != 'h' or 'h' != 'l'
\________/    \________/
   false   or    true
   \________________/
         true

由于对象不能同时两件事,其中一个不等式必须为真。因此,整个表达必须是真的。

因此你应该改为:

while (outcome != 'h') and (outcome != 'l'):

或:

while outcome not in ('h', 'l'):
随着可能性的增加,后者更加简洁:

while outcome not in ('n', 's', 'e', 'w', 'u', 'd', 'l', 'r'):