如果,elif和其他..优先和链

Dan*_*niz 1 python if-statement

我总是对Python有这种好奇心,我找不到一个明确的答案,也许有人可以帮助我什么是"if","elif"和"else"优先级和工作方式?如果我做:

if conditionA:
    do something
elif conditionB:
    do something else
else:
    do something else
Run Code Online (Sandbox Code Playgroud)

"其他"是否检查"elif"中的条件或"if"和"elif"两种情况?是否有任何有趣的顺序可以使用它们(例如,if,else,elif,else等)?谢谢

mhl*_*ter 6

else是包罗万象的毕竟ifelif语句都是假的.将它置于中间将是语法错误.

不要想到else"检查条件".想一想,else如果其他人都是真的,控制流程甚至都达不到.多重也是如此elif.

考虑一下:

if False:
    print 'first'
elif True:
    print 'second'
elif True:
    print 'third'
Run Code Online (Sandbox Code Playgroud)

甚至third不打印,因为第二个是真的.第三个是真的并不重要,因为它甚至没有被评估.

如果您正在调用函数,这也会产生一些副作用:

if send_email(to_coworker):
    pass
elif send_email(to_boss):
    pass
Run Code Online (Sandbox Code Playgroud)

假设函数返回True成功,那么发给你老板的电子邮件只会发送给你的同事的电子邮件失败,即使需要调用该函数来评估elif条件