小编采访

肺心病,Python中被疏忽的else,split

else, 咱们再了解不过了。关于一个python程序员来说,else往往都是合作if来运用的,像这样:

但是,python中的else并不只能用在if之后,so,这次咱们讨论一下Python流程操控中的else。

else子句不只能在if 句子中运用,还能在 for、while 和 try 句子中运用,这个言语特性不是什么隐秘,但却没有得到注重。咱们看一个比如:

本例傍边,循环最终找到了'banana',输出'Founded!',并且跳出循环,所以else字句并没有被履行。但假如,将代码修正一下,去掉列表中的'banana':

运转代码就会直接抛出过错!假如不运用else字句来完结上述功用,或许咱们就需求设置操控标志了,像这样:

很明显,这儿运用了额定的变量flag和if句子。

while 和 for相相似,简略举个比如:

下面看一下try:

很清晰,try 块防卫的是 dangerouscall 或许呈现的过错,并且很明显,只要 try 块不抛出反常,才会履行aftercall。

现在,总结一下else 子句的行为如下:

for:

仅当 for 循环运转结束时(即 for 循环没有被 break 句子间断)才运转 else 块。

while:

仅当 while 循环由于条件为假值而退出时(即 while 循环没有被break 句子间断)才运转 else 块。

try:

仅当 try 块中没有反常抛出时才运转 else 块。

即,假如反常或许 return、break 或 continue 句子导致操控权跳到了复合句子的主块之外,那么else 子句也会被越过。

for/else、while/else 和 try/else 的语义联系严密,不过与if/else 不同很大。主要是else 这个单词的意思阻止了咱们对这些特性的了解。 按正常的了解应该是“要么运转这个循环,要么做那件事”。但是,在循环中,else 的语义恰好相反:“运转这个循环,然后做那件事。”不过,信任多运用几回,你会了解的。

需求python教程+PDF电子书的小伙伴

请重视、转发、私信我"学习"就能免费获取教程+电子书。

推荐新闻