Python(for和while)循环嵌套及用法

Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者 for 中有 while 也都是允许的。

当 2 个(甚至多个)循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。

循环嵌套结构的代码,Python 解释器执行的流程为:

  1. 当外层循环条件为 True 时,则执行外层循环结构中的循环体;
  2. 外层循环体中包含了普通程序和内循环,当内层循环的循环条件为 True 时会执行此循环中的循环体,直到内层循环条件为 False,跳出内循环;
  3. 如果此时外层循环的条件仍为 True,则返回第 2 步,继续执行外层循环体,直到外层循环的循环条件为 False;
  4. 当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则整个嵌套循环才算执行完毕。

循环嵌套的执行流程图如图 1 所示:

图 1 循环嵌套的执行流程图

下面程序演示了 while-for 嵌套结构:

i = 0
while i<10:
    for j in range(10):
        print("i=",i," j=",j)
    i=i+1

由于程序输出结果篇幅太长,读者可自行拷贝代码并执行,观察其执行结果。

可以看到,此程序中运用了嵌套循环结构,其中外循环使用的是 while 语句,而内循环使用的是 for 语句。程序执行的流程是:

  • 一开始 i=0,循环条件 i<10 成立,进入 while 外循环执行其外层循环体;
  • 从 j=0 开始,由于 j <10 成立,因此进入 for 内循环执行内层循环体,直到 j=10 不满足循环条件,跳出 for 循环体,继续执行 while 外循环的循环体;
  • 执行 i=i+1 语句,如果 i<10 依旧成立,则从第 2 步继续执行。直到 i<10 不成立,则此循环嵌套结构才执行完毕。

根据上面的分析,此程序中外层循环将循环 10 次(从 i=0 到 i=9),而每次执行外层循环时,内层循环都从 j=0 循环执行到 j=9。因此,该嵌套循环结构将执行 10*10 = 100 次。

嵌套循环执行的总次数 = 外循环执行次数 * 内循环执行次数

事实上,if 语句和循环(while、for)结构之间,也可以相互嵌套,举个例子:

i = 0
if i<10:
    for j in range(5):
        print("i=",i," j=",j)

程序执行结果为:

i= 0  j= 0
i= 0  j= 1
i= 0  j= 2
i= 0  j= 3
i= 0  j= 4

需要指明的是,上面程序演示的仅是 2 层嵌套结构,其实 if、while、for 之间完全支持多层( ≥3 )嵌套。例如:

if ...:
    while ...:
        for ...:
            if ...:
                ...

也就是说,只要场景需要,判断结构和循环结构之间完全可以相互嵌套,甚至可以多层嵌套。

结尾福利

这里免费送大家一套2020最新python入门到高级项目实战视频教程,点击这里即可领取!或者加入博主Python交流圈(QQ群:1049600759)免费下载。


本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

 
(0)

相关推荐

  • do while 循环结构

    ★ do while 循环结构形式 do {          语句; } while (表达式); ★ do while 循环结构流程 首先执行语句(第 1 次): 之后求解表达式的值 如果值是 0 ...

  • Java循环结构 while、do...while、for 用法与区别总结

    循环结构 为什么要使用循环?解决编码复杂度. 什么是循环?重复做同一件事情或者做同样的事情. While循环 While(布尔表达式){ 语句或语句块; } while循环语句的执行过程如下: 首先判 ...

  • 今日份编程知识分享,C++的循环结构!

    循环结构 所谓的循环结构简单来说就是不停的重复一个过程,通过一个判断条件来决定是否退出循环.循环可谓是真正开始体现计算机强大处理能力的时候,例如时钟的运行.游戏的人物移动.动态的屏幕显示等等,这些都是 ...

  • Python教程之break用法

    与C语言一样,Pythonbreak语句将会打破最小封闭for或while循环. break语句可以立即结束当前循环的执行,从而跳出当前所处的循环结构.不管是while循环还是for循环,只要执行br ...

  • Python基础教程:循环嵌套

    Python语言允许在一个循环体里面嵌入另一个循环. Pythonfor循环嵌套语法: for iterating_var in sequence: for iterating_var in sequ ...

  • Python循环结构中else用法(入门必读)

    Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码. 以 w ...

  • Python No.12_列表循环&元组

    一.列表循环ndd = [1,23,3,34,6,[2,2,3,4],3]for i in ndd: print(i)#列表中依次将字符串打印出来. for i in ndd[5]: print(i) ...

  • Python教程:for循环语句

    循环(loop)是生活中常见的现象,如每天的日升日落,斗转星移,都是循环,编程语言的出现就是为了解决现实中的问题,所以也少不了要循环. for循环 在这里我用一个例子来具体解析一下for循环: > ...

  • 一文讲解Python教程:while-else循环语句

    与while循环语句类似,区别在于,while-else循环语句在条件不满足退出循环时,会先执行else后面带缩进的代码逻辑. 1.语法格式: while 循环判断条件: 循环体else: 代码逻辑1 ...

  • 一文讲解Python教程:for循环语句

    Python中的for循环是迭代循环,可以遍历任何的序列对象或可迭代对象,如str.list.tuple.dict等. 遍历时,for循环语句将遍历对象中的所有成员,遍历顺序与成员在对象中的顺序一致, ...

  • Python|如何打破while循环

    引言在编程领域,有一个称为"循环"的东西.循环之所以出色,是因为用几行简单的代码,它们就可以命令计算机完成无数的工作.这在解决一系列重复的运算时是非常不错的方法的,但也不能无限循环 ...

  • Python中struct.pack()和struct.unpack()用法详细说明

    python 中的struct主要是用来处理C结构数据的,读入时先转换为Python的 字符串 类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~.一般输入的渠道来源于文件或者网 ...

  • Python Tkinter Place布局管理器及用法

    Place 布局就是其他 GUI 编程中的"绝对布局",这种布局方式要求程序显式指定每个组件的绝对位置或相对于其他组件的位置. 如果要使用 Place 布局,调用相应组件的 pla ...