时间:2021-05-22
本文讨论Python的for…else和while…else语法,这是Python中最不常用、最为误解的语法特性之一。
Python中的for、while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行。换句话说,如果我们不是以除正常方式以外的其他任意方式退出循环,那么else分支将被执行。也就是在循环体内没有break语句、没有return语句,或者没有异常出现。考虑一个简单的(无用的)例子:
上面的代码中,我们在range(5)上迭代并打印每个数字。因为我们让循环正常完成,所以else分支也被执行,并打印出Iterated over everything :) 。相反,如果我们用break语句终止循环,那么else分支将不会执行:
注意,尽管循环所迭代的序列是空的,else分支依然会被执行,毕竟循环仍然是正常完成的。
同样不要忘记,以上所有也适应于while…else:
但是,为什么呢!?
else语句在循环中的一个常见使用案例是实现循环查找。假说你在查找一个满足特定条件的项目(item),同时需要进行附加处理,或者在未发现可接受的值时生成一个错误:
没有else语句的话,你需要设置一个标志,然后在后面对其检测,以此确定是否存在满足条件的值。
这不是一个真正重要的东西,而在许多其他语言中你必须要如此做。但是类似Python的许多其他特性,else语句可以生成更加优雅的Python风格的(Pythonic)代码。毫无疑问,上面的例子中,使用else语句使得代码更加The Zen of Python友好:
这并不是说你不得不在循环中使用else语句,你总是可以使用标志等等。但是else语句常常可以使代码更加优雅、更具可读性。你可能认为这样Pythonic,而且使意图更加清楚(嗨!),然而其他人可能认为这样有迷惑性,而且冗余!个人来说,我坚持在循环中使用else语句,除非存在另一个更具可读性的方法(我想,对我来说,代码的可读性是最重要的)。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
循环例子:while循环和do…while循环whlie(条件语句){循环体}//先进行条件语句的判断,再进行循环体do{循环体}whlie(条件语句)//先执
实际上,break语句还可以用于循环体内。break语句的一般格式为:break;其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。
1.For循环格式:for(初始语句;执行条件;增量){循环体}执行顺序:1、初始语句2、执行条件是否符合3、循环体4、增加增量初始化语句只在循环开始前执行一次
一、条件分支语句:if基本格式:if(){}elseif(){}else{}执行流程:二、循环语句2.1前测试循环语句:在循环体内的代码被执行之前就对出口条件求
循环使用else语句在python中,for…else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过bre