-8

Pythonの比較演算子に疑問がありました。正しいか間違っているか知りたいです。

変数に割り当てられた特定の出力があります。では、次のように言いましょう。

result1, result2, result3

今、私は次のような比較を行います

if result1 == 0 and result2 == 0 and result3 == 0: 
    print "Success "
else:
    print "failure"

私の疑問は、この比較をこの形式で行うことができるかということです

if 0 in (result1 , result2 ,result3):
    print "Success"
else :
    print "failure"

これは Python を使用する権利ですか? そうでない場合、その理由は何ですか?

4

4 に答える 4

6

比較はできますが、2 番目の比較は最初の比較と同じではありません。

Trueこの比較は、各変数が 0 の場合にのみ行われます。

if result1 == 0 and result2 == 0 and result3 == 0:

この比較はTrue、変数の少なくとも 1 つが 0 の場合に行われます。

if 0 in (result1, result2, result3):

ご覧のとおり、これはまったく同じ比較ではありません。同じ比較を実行するには、次のようにします。

if (0, 0, 0) == (result1, result2, result3):
于 2012-06-25T06:38:16.093 に答える
5
if 0 in (result1, result2, result3):

次と同等です。

if result1==0 or result2==0 or result3==0:

あなたが欲しいのはこれです:

if (0,0,0) == (result1, result2, result3):

これは次と同等です:

if result1==0 and result2==0 and result3==0:

実際にこれを行うこともできます:

if result1==result2==result3==0:

3 つの変数すべてが同じかどうかを確認しているためです。

于 2012-06-25T06:38:07.893 に答える
0

おそらく可変関数を実行しますか?

def allZero(*args):
    for elem in args:
        if elem != 0:
            return False
    return True

if allZero(result1, result2, result3):
    return "Success"
else: 
    return "Failure"

resultNその後、一度にいくつでもテストできます。

于 2012-06-25T06:42:51.620 に答える