当前位置: 首页 > 后端技术 > Python

Pythonfor...else...语句

时间:2023-03-26 00:19:55 Python

条件语句在编程语言中非常常见。只要你需要写程序,几乎肯定会用到if...else...判断这样的条件语句。所以通用编程语言都会提供if...else...语法。Python也不例外,但是Python不仅有if...else...这样的语法,它还提供了for...else...、try...except...else...等语法。.今天我们只讨论for...else...语法,让我们看看Python的else语句跟在for和if后面的异同。先看一个代码示例:foriin[1,2,3]:print(i)else:print('done')执行结果:123done如果不执行这段代码,只看这段代码的方式写到这里,也许你会猜到它的执行结果应该只有1、2、3三个数字,并没有done。因为在if...else...的逻辑中,如果if的条件为真,那么else语句下面的代码块就不会执行。但是从打印结果来看,显然不符合我们的预期。带着疑惑,我们看下面的示例代码:foriin[]:print(i)else:print('done')执行结果:done这次结果只有一个done,看来这段代码看起来比较合理一些。因为for遍历出来的list是空的,所以条件不成立,那么应该执行else的逻辑,对吗?让我们看看下面的例子。我们知道关键字continue和break可以出现在for语句块中,那么我们先测试一下如果continue包含在for语句块中会发生什么情况。foriin[1,2,3]:ifi==2:continueprint(i)else:print('done')执行结果:13done这个结果和第一个代码例子类似,只是i==2,跳过本次循环,继续执行下一次循环。最后,让我们看看如果for语句块包含break会发生什么。foriin[1,2,3]:ifi==2:breakprint(i)else:print('done')执行结果:1根据上面代码的打印结果,我想你可能已经明白了Pythonfor...else...语句的执行特点。没错,其实如果按照if...else...互斥的逻辑理解for...else...,那么for语句块内部的break就真的是一对条件语句with别的。如果在for循环中执行了break语句,那么else语句块内的代码将不会被执行。您知道Python的for...else...语句的语法,但它的用途是什么?刚开始接触for...else...语句的时候,我认为它完全没用,以至于很长一段时间都没有在我写的Python代码中使用它,甚至差点忘记了它提供的语法Python。直到我开始编写ERP项目时,我才发现for...else...的真正用途。因为写ERP系统会遇到各种复杂的业务需求,如果能用for...else...来解决问题,代码逻辑看起来会清晰很多,大大增加了项目的可维护性。如果用for循环遍历一个可迭代对象,如果可迭代对象中有元素满足条件,则执行一个逻辑,然后break,如果不存在则执行else语句执行另一个逻辑,示例代码如下:foriininiterableobject:if条件判断:执行一个逻辑breakelse:执行另一个逻辑这种代码显然比下面没有for...else...的写法更具可读性和一致性.flag=Falseforiiniterableobject:if条件判断:执行一个逻辑flag=Truebreakifnotflag:执行另一个逻辑上面,就是我对for...else...的理解和经验,希望大家能遇到当你遇到同样的问题时帮助你。