while循环中的任何代码将在while循环中的条件变为False时执行.对于python中while循环的'else子句'部分中的代码,它是相同的.那么在while循环中使用'else'有什么好处?
else如果break循环中有语句,则不会执行.来自文档:
while只要表达式为真,该语句就用于重复执行:Run Code Online (Sandbox Code Playgroud)while_stmt ::= "while" expression ":" suite ["else" ":" suite]这反复测试表达式,如果是,则执行第一个套件; 如果表达式为假(可能是第一次测试)
else,则执行该子句的套件(如果存在)并且循环终止.一个
break在首套房执行的语句终止循环,不执行该else条款的套件.continue在第一个套件中执行的语句会跳过套件的其余部分,然后返回测试表达式.
(强调我的)for顺便说一句,这也适用于循环.它通常不常用,但通常非常优雅.
我相信标准用例是当您在容器中搜索以查找值时:
for element in container:
if cond(element):
break
else:
# no such element
Run Code Online (Sandbox Code Playgroud)
另请注意,循环后,element将在全局范围内定义,这很方便.
在我从一些邮件列表中听到一个很好的解释之前,我发现它违反直觉:
else套件总是在评估条件时执行False
因此,如果while循环的条件被执行并且发现为false,则循环将停止并且else套件将运行.break是不同的,因为它退出循环而不测试条件.
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |