学习python的第十天

一.嵌套循环(for和while)

1.

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,则整个嵌套循环才算执行完毕。

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

 

 下面给个实例

可以看到,此程序中运用了嵌套循环结构,其中外循环 使用的是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语句与循环结构之间,也可以相互嵌套

    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.break用法在嵌套循环中的应用

可借助bool类型变量

    add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
    #提前定义一个 bool 变量,并为其赋初值
    flag = False
    for i in range(3):
        for j in add:
            if j == ',':
                #在 break 前,修改 flag 的值
                flag = True
                break   
            print(j,end="")
        print("\n跳出内循环")
        #在外层循环体中再次使用 break
        if flag == True:
            print("跳出外层循环")
            break

借助一个bool类型的变量flag,在跳出内循环时更改flag的值;同时在外层循环体中,判断flag的值是否发生改动,如有改动,则再次执行break跳出外层循环

二.continue 的用法

给个例子

    add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
    # 一个简单的for循环
    for i in add:
        if i == ',' :
            # 忽略本次循环的剩下语句
            print('\n')
            continue
        print(i,end="")

得到如下结果

http://c.biancheng.net/python/
http://c.biancheng.net/shell/
可以看到,当遍历 add 字符串至逗号( , )时,会进入 if 判断语句执行 print() 语句和 continue 语句。其中,print() 语句起到换行的作用,而 continue 语句会使 Python 解释器忽略执行第 8 行代码,直接从下一次循环开始执行。

后面还有一些内容我还没有理解,先到这里吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值