我一直对Python有这种好奇心而我无法找到明确的答案,也许有人可以帮助我 什么是" if"," elif"和"否则"优先事项和工作方式? 如果我这样做:
if conditionA:
do something
elif conditionB:
do something else
else:
do something else
" else"检查" elif"或两种情况"如果"和" elif"? 是否有任何有趣的顺序可供使用(例如if,else,elif,else等)? 感谢
答案 0 :(得分:6)
else
和if
语句都是假的之后, elif
是全能的。把它放在中间会出现语法错误。
不要想到else
"检查条件。"想一想,如果其他人都是真的,控制流量永远不会达到else
。多个elif
也是如此。
考虑一下:
if False:
print 'first'
elif True:
print 'second'
elif True:
print 'third'
即使third
也不会打印,因为第二个是真的。第三个是真的并不重要,因为它甚至没有被评估。
如果您正在调用函数,这也会产生一些副作用:
if send_email(to_coworker):
pass
elif send_email(to_boss):
pass
假设函数返回True
如果成功,那么发给你老板的电子邮件只会发送给你同事的电子邮件失败,即使需要调用该函数来评估elif条件< / em>的
答案 1 :(得分:1)
他们按照他们在文件中遇到的顺序进行处理。
if True:
# Always executes.
elif False:
# Is never checked.
else:
# We never get this far, either.
一旦遇到评估True的第一个条件,就会执行相应的代码块。其他条件未经检查。
答案 2 :(得分:0)
它们本身没有优先级,真正重要的是顺序,因此将检查第一个条件,如果第一个条件为False,则检查第二个条件,依此类推,直到任何条件为True或执行if语句当且仅当所有条件都为False
时在你的例子中,如果conditionA为True,那么if语句中的代码将被执行,而elif和else条件根本不重要。
如果conditionA为False且conditionB为True,则执行elif语句中的代码。
最后,只有当conditionA和conditionB为False时,才会执行else块内的代码