0基础Python学习与训练12(while循环的嵌套)
经过前面的学习,我们已经掌握了Python中的(常量、变量、算术运算符与表达式、if、elif、else、多分支的嵌套、while循环与条件表达式)等的内容,同时,也通过(训练程序)完成了代码的编写,并完成任务,但是,在代码编写时,大家有否想过,在每次循环中,能否再使用循环呢?如果可以要怎样操作呢?语法格式又是如何呢?那么,在接下来的时间里面,我们准备学习Python中的(while循环嵌套)就可以解决这个问题了。while循环嵌套——就是在(while循环)中,再使用(while循环),然后,嵌套的层数没有限制,就相当于一层(套着)一层,从而,形成了(while循环)嵌套的形式。(1)以(while)关键字开始,然后,在循环体中,再调用(while循环),内层的while关键字要缩进一个空格。(2)无论是(外层还是内层)的while循环,它们的(表达式)都是循环能否执行的判断条件,当(表达式)的结果等于(非0值)时,就可以执行循环体中的代码。当(表达式)的结果等于(0值)时,就不可以执行循环体中的代码,并(跳过)整个循环体,继续执行后面的代码。(3)当(内层循环)执行时,直到它的(表达式)判断结果为0时,才会结束,然后,才可以继续执行(外层循环)中其它的代码。(4)当(外层循环)的(表达式)判断结果为0时,就可以结束整个(while循环嵌套),继续执行后面的代码,又或者,在(外层循环)的(表达式)第一次判断时,结果为0,同样,不会执行(while循环嵌套)中的代码。(5)循环的结束位置,就是通过一行(没有缩进) 的代码来表示结束位置,就是语法格式中的(代码2)。另外,(外层的while或内层的while)与(代码2)的位置也可以对齐,即大家缩进的空格数是一样的,从而,构成了(循环体)起始与结束边界。通过上面的介绍,大家就可以了解到(while循环嵌套)的语法格式,而这个格式的重点是,先把内层循环执行完毕,再继续执行外层的循环,直到外层循环结束,那么,整个循环嵌套的执行就正式结束。另外,无论是(内层循环)还是(外层循环),它们能否(执行与结束),都是通过表达式的结果来决定,当判断结果是(非0值)就执行循环体中的代码,当判断结果是(0值)就不执行循环,或结束正在执行的循环。
例子1:(1)程序首先判断最外层的(while语句)后面的(表达式)i<1,判断结果为1,因为i等于0,而0是小于1,这样就可以继续执行while循环体中的代码,即内层的while语句。(2)然后,继续判断内层的(while语句)后面的(表达式)j<2,判断结果为1,因为j等于0,而0是小于2,这样就可以继执行内层while循环语句体中的代码,所以,执行j+1,即0+1结果等于1,再赋值给(变量j),这样,j中的值就由0变为1,然后,继续执行内层的while循环。(3)程序再次判断(内层while语句)后面的(表达式)j<2,判断结果为1,因为当前的j等于1,而1是小于2,这样就可以继执行内层while循环体中的代码,所以,再执行j+1,即1+1,结果等于2,再赋值给(变量j),这样,j中的值就由1变为2,然后,继续执行内层的while循环。(4)程序再次判断(内层的while)语句后面的(表达式)j<2,判断结果为0,因为当前的j等于2,而2不是小于2,所以,就可以结束内层的while循环,并跳过内层循环的循环体,即跳过j=j+1,然后,执行下面的代码,i=i+1,即0+1,因为,这时的(变量i)中的值为0,所以,就是0+1结果等于1,然后,再赋值给(变量i),这样,i中的值就由0变为1。(5)现在,程序回到了最外层的(while语句)的(表达式)判断上,再次判断(表达式)i<1,判断结果为0,因为当前的(变量i)等于1,而1不是小于1,所以,就可以结束外层的while循环,并跳过外层循环体中所有的代码,包括跳过内层的while循环中的所有代码。然后,再去执行代码1。
那么,通过上面的例子分析后,相信大家就可以更进一步地了解到(while循环嵌套)是如何运用的。
现在,我们已经学习完(while循环嵌套),接下来,就可以运用它,编写代码完成(训练程序)的任务。注意观察地形中,角色每次可以水平或垂直移动多少个方格,即路径的变化规律。针对(while循环嵌套)的训练,后面还有多个关卡配合不同的任务进行代码编写的训练,从而,逐步让大家可以熟练掌握(while循环嵌套)在编程时的运用。在后面的内容中,我们将会继续学习(break、continue、列表)等的内容。