• 1.10 while语句(Python)


    本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python

    简介

    while语句的格式:

    while 条件表达式:
        循环体
    
    • 1
    • 2

    while会判断后面的判断表达式是否为True

    • 如果为True,就执行循环体,当循环体执行完,再次回到while语句,继续判断是否为True
    • 不为True,跳出循环

    具体流程可以参考下图:

    在这里插入图片描述

    简单的示例

    cnt = 0
    while cnt <= 3:
        print(cnt)
        cnt += 1
    
    • 1
    • 2
    • 3
    • 4

    输出:

    0
    1
    2
    3
    
    • 1
    • 2
    • 3
    • 4

    单步执行(右上角为cnt变量当前的值):

    (CSDN不支持超过 5MB 的动图,请前往https://www.yuque.com/yxzl/python/eivcql阅读)

    无限循环

    通过前文的介绍,我们知道只要条件表达式结果始终为True,那么while就会一直执行。于是我们可以这样操作:

    while True:
        print("这是一个无限循环")
    
    • 1
    • 2

    输出:

    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    这是一个无限循环
    ……
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果你运行了这个程序,可以用快捷键Ctrl + C终止它。

    当然,在我们真正开发的过程中,这样的死循环是要尽量避免的。即便使用,也一定要注意在适当的位置加上break

    break 和 continue

    break

    cnt = 0
    while cnt < 10:
        cnt += 1
        if cnt == 5:
            break
    print(cnt)  # 输出:5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    break语句用来终止循环语句,即哪怕循环条件没有转为False,也会停止执行循环语句。

    在这里插入图片描述

    continue

    cnt = 0
    while cnt < 10:
        cnt += 1
        if cnt % 2 == 0:
            continue
        print(cnt)
    
    # 输出:
    # 1
    # 3
    # 5
    # 7
    # 9
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    continue语句用来告诉 Python 跳过当前循环的剩余语句,然后继续进行下一轮循环(continue语句跳出本次循环,而break跳出整个循环)。

    在这里插入图片描述

    break 和 continue 的作用范围

    该内容相对而言不那么新手友好,可选择性掌握。

    如果您使用嵌套循环,breakcontinue语句将停止执行最深层的循环,并开始执行下一行代码。

    
    
    • 1

    输出:

    START
    0
    END
    START
    0
    1
    END
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数据量不大,可以考虑颅内模拟运行。也可以看一下这个动图。

    在这里插入图片描述

    while 中的 else

    这个功能开发中几乎不可能用到,大家了解一下即可。

    还是先来看示例:

    cnt = 3
    while cnt:
        print(cnt)
        cnt -= 1
    else:
        print('cnt = 0')
    
    print('=====')
    
    cnt = 3
    while cnt:
        print(cnt)
        cnt -= 1
        if cnt == 0:
            break
    else:
        print('cnt = 0')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    3
    2
    1
    cnt = 0
    =====
    3
    2
    1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    直接给出结论:如果while语句是正常退出,那么会执行else中的语句;如果while语句是被break而退出,就不会执行else

  • 相关阅读:
    一个策略模式Demo
    thinkphp执行复杂存储过程,有时候成功,有时候失败的解决办法
    Linux设置密码复杂度
    Apache开启SSL(https)访问网站配置
    从预训练损失的角度,理解语言模型的涌现能力
    TempoEM指标平台重磅发布,让管理更敏捷,业务更智能!
    通过AOP拦截Spring Boot日志并将其存入数据库
    Spring复习——day16_SpringMVC_异常处理器
    具有细胞膜通透性的铕配合物单线态氧荧光探针/细胞膜次氯酸根荧光探针的相关研究
    Java常用集合解析
  • 原文地址:https://blog.csdn.net/weixin_44495599/article/details/126184129