导读
为了解答大家初学Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载
上一期学习了Python程序的基本控制流程,相信大家都已经熟悉啦,我们这一期就来学习Python程序的基本控制流程剩下的部分吧!
Python程序的基本控制流程
循环结构
循环结构,很好理解,就是一直做某件事情,直到满足某种条件
就像玩游戏,做任务,觉醒20个式神,当完成之后,循环就结束啦
while循环
我们举个栗子看看:
这是1~10求和,使用while循环
首先,count作为计数器,每次加1,初值设为1
sum作为累加器,初值设为0,每次加上count
然后循环的终止条件是count<11 ,也就是count等于10 是最后一次循环
每次循环打印sum和count的信息
这里使用了之前讲到的 += 和 print多个值的知识点
while死循环
在上一个循环中,当循环条件count<11不再满足时(此时count = 11)
就不会继续循环了
但是有种循环是会不断进行的,不会停止!
我们想想,当循环条件一直满足,是不是就死循环了
死循环中的‘死’指的不是循环死掉或者结束,指的是陷入了不断地循环之中,想被捆绑固定死这种
捆绑,你懂的【坏笑
举个栗子:
大家注意,这里使用True作为真的条件
所以一直打印内容
大家注意到那个红圈的星号了么
指的是程序还在执行(有时是程序卡死)
怎么让他停止呢?
还记得刚开学时候讲的下图么:
按下去后等一会就好了,实在不行就restart kernel 或者重启jupyter
当然,死循环的条件改为任何真的值都行,例如'a' 或者是 1 都可以
for循环
除了while循环,还可以用for循环
for循环的格式:
for 循环变量 in 对象:
循环语句
这里的对象可以是我们学过的字符串,也可以是我们将要学的列表,元组,字典等
我们举个栗子:
这里的变量是 i ,我们习惯用 i ,当然,你换成 iphonex 也是可以的
这里相当于去循环'Python'这个字符串里的每位字符
然后依次打印
for循环经常和range()函数配合使用
range()函数的用法:
range(起始值,终止值,步长)
这里的起始值就是起点的意思
注意:终止值在这里是取不到的
步长就是跨一步通过的长度
举个栗子:
我站在0点位置,一步可以向前跨2m,则下一次我就在2m处了
然后是4m,以此类推。。。
好了,我们来看看具体程序:
注意:这里的循环结束位置10并没有打印出来
也就是刚才说的range()函数的结束位置的值是取不到的
循环语句嵌套
循环语句嵌套指的是,在一个程序中,存在这多个循环,而且这多个循环是相互嵌套的
还记得分支语句那节我们说的分支语句的嵌套么
还记得俄罗斯套娃么
形式是一样的
我们来玩一下学编程很喜欢打印输出的九九乘法表
我们尝试用Python实现一下:
内容结果是对了,但是这个格式不是我们熟悉的三角形的
我们调一下格式,让它每次输出print时候不要自动换行,我在print()函数里加了个参数end='':
但是我们见到的是 i 结束一轮,应该换行的
外面 i 的循环叫做外循环,里面的 j 循环叫做内循环
内循环循环一轮,外循环才循环一次
所以大家试一下的时候发现这个执行速度还是不快的
所以在Python中,能不用双层循环就不用,会拖慢执行速度
我们继续调整一下格式,在每执行一次外循环之前,换一行:
看上去样子已经很ok了,细心观察发现,运算式子之间靠的太近,我们使用空格隔开:
终于成功打印啦~
循环的中断
就是提前结束了循环【循环的终止条件还没达到】
循环结束有break和continue两种
break结束本次循环,跳出所在的循环
break是中断当前循环,跳出本次循环
跳出,你懂么,就是和本次循环没关系啦
上面是一个用break结束死循环的例子
continue结束本次循环,继续进行下一次循环
下一次循环开始,注意,上一次你没有操作,就结束了本次循环开始了下次循环
这就和continue很相似
和break不同之处就是,不是结束整个循环,而是结束了这次
我们通过代码演示一下
每次都会让你输入一个数
我们加入continue:
注意:这里没有用else,当超过30秒,执行if的内容,然后跳过本次循环,之后的打印也就不输出了
如果没到30秒,if不执行,最后一句打印会执行
是不是很巧妙【自我陶醉中】
好啦,这期的分享先到这里,大家可以按照上面的详细步骤进行练习,我们下周五不见不散~
文章来源: Python爱好者社区
文章编辑:天天