Python:elif还是新的if?

amy*_*sin 9 python if-statement

什么是更好用:

if var in X:
    #do_whatever
elif (var in Y):
    #do_whatever2
Run Code Online (Sandbox Code Playgroud)

要么:

if var in X:
    #do_whatever
if var in Y:
    #do_whatever2
Run Code Online (Sandbox Code Playgroud)

假设var不能同时在X和Y中......是否有任何规则或常规做法?我应该使用elif吗?还是一个新的if?或者没关系?

编辑:很好的答案..但我可以说,如果第一个声明(#do_whatever)以一个返回或休息结束; 在最后,其他条件将不会被测试,从而浪费系统资源或造成麻烦,可以做任何事情......我猜......

Nik*_*s R 16

它在某些情况下会有所不同.看这个例子:

def foo(var):
    if var == 5:
        var = 6
    elif var == 6:
        var = 8
    else:
        var = 10

    return var

def bar(var):
    if var == 5:
        var = 6
    if var == 6:
        var = 8
    if var not in (5, 6):
        var = 10

    return var

print foo(5)        # 6
print bar(5)        # 10
Run Code Online (Sandbox Code Playgroud)


Edo*_*odo 5

如果第二个语句是不可能的,如果第一个语句是真的(就像这里的情况,因为你说var不能同时在X和Y中),那么你应该使用elif.否则,第二次检查仍然会运行,如果你知道它会变错,这会浪费系统资源.