0
outcome=input("higher or lower")

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

print("its working")

the while loop keeps going even when i write H or L

4

1 回答 1

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'):
于 2013-09-13T04:38:02.993 回答