1

私はPythonを初めて使用します。このスクリプトを見てください:

def myfunc(*args):  
    print len(args)
    if args == 3:
        for arg in args:
            print arg
    else:
        print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)

ご覧のとおり、関数に渡される引数の数は3つです。これで条件args==3はですTrueが、そのelse部分は実行されます。一方、if条件がfalseの場合、コードのその部分が実行され、elseスキップされます。

ifステートメントがFalse条件で実行される理由を説明できますか?

4

3 に答える 3

7

いいえ、そうでargs == 3は ありませ True。あなたはおそらく意味しlen(args) == 3ました。

于 2012-10-23T09:49:04.447 に答える
4

私はあなたがlen(args)==3代わりにやっているに違いないと思いますargs==3

if len(args)==3:

関数内でタプルになるため、条件args==3が真になることはありません。args

したがって、合格した場合でもmyfunc(3)、一致することになります。(3,)==3つまり、ですFalse

于 2012-10-23T09:48:59.910 に答える
0

使用する場合はしなやかさのリストであり、それに対してチェックする場合は状態にならなければならないため、len(args) == 3代わりに適用する必要があります。args == 3argselse

def myfunc(*args):

    if len(args) == 3:
        for arg in args:
            print arg
    else:
        print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)

このコードは、期待される結果をもたらします。

于 2012-10-23T10:02:49.910 に答える