程序重复的去做一件事情就叫做循环
程序为什么会有循环这种执行方式?(毕竟我们已经学习了顺序执行和if判断的选择性执行)
需求:需要在屏幕上打印100行我爱北京天安门
在我们之前学到的方法中只能将print("我爱北京天安门")复制100遍去执行,可想而知非常麻烦,要是改成1000或10000行呢?,为了满足这种需求,Python提供了循环执行方式
语法:while加上空格加上判断条件(判断条件一般会应用运算符)加上:(英文状态下的冒号),while下一行开始写上条件满足时需要循环做的事情(想写多少条写多少条)(行首代码前面有一个tab键)
while 判断条件:
条件满足时循环做的事情1
条件满足时循环做的事情2
条件满足时循环做的事情3
。。。
语意:判断条件,条件满足时执行循环做的事情1、2、3,执行完再一次判断条件,条件满足时继续执行循环做的事情1、2、3,依次类推,直到再一次判断条件时条件不满足,此时退出循环,执行while循环外的下一条代码
示例:打印100行我爱北京天安门
思路:要重复打印我爱北京天安门,因此要使用循环,需要循环做的事情是print("我爱北京天安门"),判断条件处要控制重复执行100遍,代码大致如下:
while 判断条件(条件要和100有联系):
print("我爱北京天安门")
要想在判断条件处控制重复100遍,最容易想到的就是从1数到100正好是100遍,也就是说我们可以找一个变量初始值为1,判断条件中让它小于等于100,当第一次执行完我爱北京天安门时让变量的值加1,当变量的值为101时不满足判断条件小于等于100,退出循环不在继续打印,最终代码如图:
如果一个循环不清楚要循环多少次,可以在判断条件处写上True(等价于填写永远成立的表达式如1<2),这样循环做的事情将会一直执行
循环除了在条件不满足的时候结束外还可以选择在某些条件下结束循环,结束循环共有两个命令break、continue
break:用来结束当前循环,执行循环外下一条代码,如图:
i==5时执行了break,while循环结束,执行了print(---------test----------)
continue:用来结束本次循环,紧接着执行下一次的循环,如图
i==5时执行了continue,本次while循环结束,未打印数值5,继续执行下一次循环
while循环里面还有while循环叫做while嵌套,适用于需要外层循环一次内层循环N次的情况下
语法:while加上空格加上判断条件1(判断条件一般会应用运算符)加上:(英文状态下的冒号),while下一行开始写上条件1满足时需要循环做的事情(想写多少条写多少条)(行首代码前面有一个tab键),条件1满足时需要循环做的事情下一行写上while加上空格加上判断条件2(判断条件一般会应用运算符)加上:(英文状态下的冒号),while下一行开始写上条件2满足时需要循环做的事情(想写多少条写多少条)
while 判断条件1:
条件1满足时循环做的事情1
条件1满足时循环做的事情2
条件1满足时循环做的事情3
。。。
while 判断条件2:
条件2满足时循环做的事情1
条件2满足时循环做的事情2
条件2满足时循环做的事情3
。。。
示例:打印九九乘法表
思路:目标分解,第一步打印9行X*Y=Z(和上面打印100行我爱北京天安门类似),第二步完成每一行打印几个X*Y=Z(九九乘法表的特征,每一行的行数与列数相同,也就是第一次循环行数的时候循环一次列数,第二次循环行数时候循环两次列数(因此要使用循环嵌套),依次类推,那么也就是说如果每次循环列数都从1开始,1数到行数对应的数值正好为列数的数值,此情况又如上面打印100遍我爱北京天安门,找一个列变量初始值为1,判断条件中让它小于等于行数,当第执行完x*y=z让列变量的值加1),第三步将XYZ替换成正确数值
第一步:
第二步:
解释:程序开始执行此时行数i=1,i<=9成立进入循环,此时列数j=1,满足条件j<=i,进入列循环执行了print("x*y=z\t",end="")(\t是打印完加一个空格,end=""是打印完不换行,换行操作在列执行完由print("")执行),执行j+=1,此时j=2,2<=1不成立所以列循环退出,执行i+=1,i=2,2<=9成立进入循环,此时j重置为1,j<=2成立进入列循环,执行print("x*y=z\t",end=""),执行j+=1,此时j=2,此时i=2,j<=2仍成立,继续执行print("x*y=z\t",end=""),因此第二次循环时列执行两次,依次类推
第三步:(观察九九乘法表可知每一行中列右边的数值不变,左边的数值递增,嵌套循环中列循环中I的值不变,j的值递增)
原文:https://www.cnblogs.com/lidongaistudy/p/9519824.html