Python循环语句中的else

本文介绍了Python中循环语句(while和for)与else子句的配合使用。else子句会在循环正常结束时执行,而遇到break、return或异常时将不执行。通过代码示例展示了else在循环控制中的作用,并提供了流程图帮助理解。

Python循环语句中的else

简介

在while和for循环语句中都可以跟上else语句,但是与if-else判断不同。在这里,else是循环语句正常结束时才能执行的代码段,如果遇到break、return和一些异常抛出时都会使得循环中断,else中的代码段也不会被执行。代码测试如下:

  • 没有中断

    i = 0
    while i < 5:
        print('第{0}个数是{1}'.format(i + 1, i))
        i += 1
    else:
        print('over')
    

    输出结果:

    1个数是02个数是13个数是24个数是35个数是4
    over
    
  • break影响

    i = 0
    while i < 5:
        if i == 3:
            break
        print('第{0}个数是{1}'.format(i + 1, i))
        i += 1
    else:
        print('over')
    

    输出结果:

    1个数是02个数是13个数是2
    

    else中的over不会执行

  • continue的话没有影响:

    for i in range(1, 10, 1):
        if i % 3 != 0:
            continue
        print("0-9中3的倍数为{0}".format(i))
    else:
        print('0-9中有3的倍数')
    
    

    输出结果:

    0-93的倍数为3
    0-93的倍数为6
    0-93的倍数为9
    0-9中有3的倍数
    

流程图

Created with Raphaël 2.2.0 开始 是否遇到return、 break和异常抛出? 结束 执行else语句 yes no
  • 循环语句中的else

作用

遍历失败,结合循环语句和判断语句能够反映出是否成功,如下:

  • 试求一下90-96之间的素数
    list = []
    i = 2
    for i in range(90, 96):
        j = 2
        for j in range(2, i):
            if(i % j == 0):
                break
        else:
            list.append(i)
    else:
        print('There is no prime number!')
    print(list)
    
    输出结果:
    There is no prime number!
    []
    
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值