0

簡単なゾーク ゲームを作成していますが、「or」演算子を使用してこの問題に遭遇しました。これは簡単だと思いましたが、なぜこれが機能しないのかわかりません。現在、「n」と入力すると、文字列「n」と等しいため、「this works」と表示されるはずです。代わりに、「それは機能します」および「これは機能します」と出力されるため、明らかに「または」を間違って使用しました。

   x=0
    while x<20:
        response = input("HI")
        if response!= 'n':
            print("it works")

        if response == 'n':
            print("this works")
        x+=1

使用する前に

x=0
while x<20:
    response = input("HI")
    if (response!= 'n') or (response != 's'):
        print("it works")


    if (response == 'n') or (response == 's'):
        print("this works")
    x+=1

使用後、または両方を印刷します。それはおそらく明らかなことです-.-

4

2 に答える 2

4

表現:

(response != 'n') or (response != 's')

文字列応答に対して常に True になりますresponseである場合'n'、そうではありません's'。である場合's'、そうではありません'n'。それ以外の場合は、そうではなく、そうでは's'ありません'n'

もしかして、あそこで使うつもりだったのand

于 2013-12-18T01:31:37.750 に答える
2

がまたはのresponseいずれかである場合、両方の条件が満たされます。これを行う最良の方法はns

if response in ('n', 's'):
    print ("it works")
else:
    print ("this works")
于 2013-12-18T01:32:29.403 に答える