美文网首页
python的for else结构 2020-03-17(未经允

python的for else结构 2020-03-17(未经允

作者: 9_SooHyun | 来源:发表于2020-03-17 11:31 被阅读0次

python的for else结构

我们常常遇到这样的情景:
在一个循环中,如果满足某个条件,则提前终止循环;如果循环是自然终止,则进行后续动作

但在python的for i in range中,我们无法通过循环变量i来判断循环是否被提前终止,如

for i in range(5): 
    if i == 4: 
        break   

for i in range(5): 
    pass

这两种循环最终i都是4,但前者是提前终止,后者是正常终止

为了判断for循环是否提前终止以进行不同的分支操作,我们常规的操作是引入一个break_flag

break_flag = 0
for i in range: 
    if condition: 
        break_flag = 1
        break
# 如果正常终止
if not break_flag:
    natural_termination_operation()

但我们可以使用for else结构,更为简洁

for i in range: 
    if condition: 
        break
else:
    natural_termination_operation()

当for循环正常执行时,才执行else语句,如果for循环因为break终止了,就不执行else语句


给定一个数组,如果数组中所有元素都是3的倍数,输出yes,否则不返回任何值

for i in nums: 
    if nums[i] % 3 != 0: 
        break
else:
    # natural_termination_operation()
    print('yes')

相关文章

网友评论

      本文标题:python的for else结构 2020-03-17(未经允

      本文链接:https://www.haomeiwen.com/subject/iwwzehtx.html