0
outcome=input("higher or lower")

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

print("its working")

H や L を書いても while ループが続く

4

1 に答える 1

6

andではなくが必要ですor

h小文字/大文字の問題は問題ではなく、.ではなく入力すると仮定しましょうH

あなたの式は次のようになります。

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

オブジェクトは同時に 2 つのものになることはできないため、これらの不等式のいずれかが真でなければなりません。したがって、式全体が真でなければなりません。

したがって、次のように変更する必要があります。

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 に答える