美文网首页
Python_循环嵌套

Python_循环嵌套

作者: 胖宝宝王 | 来源:发表于2016-01-29 16:44 被阅读837次

感谢金角大王alex的解惑!!!


循环是什么?
转自维基的解释:

  • 循环是一段在程序中只出现一次,但可能会连续运行多次的代码。循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都运行一次。
  • 完整解释移步维基百科-程序循环

python实现循环的方式有:

  1. for循环
    • 它拥有一个循环计数器或是循环变数。这使得For循环能够知道在迭代过程中的执行顺序。
  2. while循环
    • 可以在特定条件成立时继续循环的进行,或是特定条件不成立时继续循环的进行,进行到特定条件成立为止

这里以while循环为例,解决3层循环嵌套的进入退出。

设置3个变量,作为3个while的条件

lay1_loop = False
lay2_loop = False
lay3_loop = False

先实现一个两层循环:

while not lay1_loop:    #条件为真,进入第一层while循环
    print("这里是第一层循环...")        
    choose = input("q,退出  其他键继续: ").strip()

    if choose == 'q': 
        lay1_loop = True
        lay2_loop = True
    else:
        pass

    while not lay2_loop:  #条件为真,进入第二层while循环
        print("这里是第二层循环...")        
        choose = input("b,返回上一层 q,退出 其他键继续: ").strip()                
        
        if choose == 'b': 
            lay2_loop = True        
        elif choose == 'q':            
            lay2_loop = True            
            lay1_loop = True
        else:
            pass

改进:
这段代码中,如果想要退出,就要同时设置lay1_loop, lay2_loop 为True。
假设循环有更多层的嵌套,相应的就要同时更改多个变量。这样代码就会很容易出错,也不够友好。
那么既然要退出整个循环,是否可以只要设lay1为True并且第二层的while
条件也为假呢?

修改后的代码:

while not lay1_loop:    #条件为真,进入第一层while循环
    print("这里是第一层循环...")        
    choose = input("q,退出  其他键进入下一层: ").strip()

    if choose == 'q': 
        lay1_loop = True  
    else:
        pass

    while not (lay1_loop or lay2_loop):  #当lay1为真,两个while的条件都为False,退出循环
        print("这里是第二层循环...")        
        choose = input("b,返回上一层 q,退出 其他键进入下一层: ").strip()                
        
        if choose == 'b': 
            lay2_loop = True        
        elif choose == 'q':        
            lay1_loop = True
        else:
            pass

同理继续添加第三次while循环。

3层嵌套

while not lay1_loop:    #条件为真,进入第一层while循环
    print("这里是第一层循环...")        
    choose = input("q,退出  其他键进入下一层: ").strip()

    if choose == 'q': 
        lay1_loop = True  
    else:
        pass

    while not (lay1_loop or lay2_loop):  #当lay1为真,两个while的条件都为False,退出循环
        print("这里是第二层循环...")        
        choose = input("b,返回上一层 q,退出 其他键进入下一层: ").strip()                
        
        if choose == 'b': 
            lay2_loop = True        
        elif choose == 'q':        
            lay1_loop = True
        else:
            pass

        while not (lay1_loop or lay2_loop or lay3_loop):
            print("这里是第三层循环...")
            choose = input("b,返回上一层 q,退出:  ").strip()

            if choose == 'b': 
                lay3_loop = True        
            elif choose == 'q':        
                lay1_loop = True

小Bug:
当进入二层循环后:输入b返一层循环后(lay2_loop = True),程序会卡在第一层循环中,无法再次进入二层。因为第二个while的条件不成立了。
同理二层进入三层也会碰到这个问题。
解决:
第一层if中的pass语句改为 lay2_loop = False
第二层if中的pass语句改为 lay3_loop = False

从此再也不会在嵌套循环中迷茫了!

相关文章

  • Python_循环嵌套

    感谢金角大王alex的解惑!!! 循环是什么?转自维基的解释: 循环是一段在程序中只出现一次,但可能会连续运行多次...

  • [Python基础]D6 循环嵌套、函数基础

    while 循环嵌套 4.1 循环嵌套 while 嵌套就是:while 里面还有 while 4.2 循环嵌套演...

  • Java学习day-06:嵌套循环

    一、嵌套循环专题 1.什么是嵌套循环? 在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do...

  • JavaScript 实现99乘法表

    写出99乘法表就必须涉及到for循环的嵌套咱们先来看看嵌套格式 for循环嵌套格式: 当循环与循环发生嵌套时遵循下...

  • 5. python学习之for循环

    问题:如何利用for循环,输出以下结果: for 和if 嵌套 for 嵌套循环

  • C语言的傻瓜式随笔(一):嵌套循环-程序结构

    循环语句的嵌套 一个循环结构内可以含有另一个循环,称为循环嵌套,又称多重循环。常用的循环嵌套是二重循环,外层循环称...

  • JAVA 嵌套for循环

    嵌套for循环_1(重要) A: 嵌套循环的概述 嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构...

  • 【C语言】-循环的嵌套

    循环的嵌套:当在一个循环语句中嵌入另一个循环时,成为循环的嵌套。 循环嵌套的形式: (1)for语句中嵌入for语...

  • Python_循环

    Python 常见的两种循环:while、for 一、while 注:ctrl + c,终止运行while 死循环...

  • Java--嵌套循环

      在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do-while与for循环可以任意嵌套多层...

网友评论

      本文标题:Python_循环嵌套

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