内容正文:
接着我们来学习这个拍摄的循环结构。二是我们第六课时,我们新授的最后一个第七课时是总结课。我们上节课讲的是for循环,这节课我们学习while循环。我们先来回忆一下炮型关。炮型关是基于序列的,可以后面跟的是列表,也可以后面跟的是软件函数。软件函数是一个含头不含尾的数字序列。那么上节课我们讲这个对折题的时候讲到了它是对折34。但是现在我有一个新的问题了,这题目改了,它也一样。它问你对折多少次,厚纸的厚度可以超过珠穆朗玛峰的高度。也就是说我不知道对折的次数了,但是我知道对折的一个条件,你只要一直对折,只要小于8844.43,我就可以不断重复纸张操作。那么这种只知循环条件,不知循环次数的题目,我们就可以使用挖掘循环来进行解决。因为挖掘循环它后面跟的是条件表达式,只要条件表达式为真,它就一直循环,非常适合我们这题。它是基于条件的循环。瓦尔条件表达式后面跟冒号,接着循环体,这个冒号必须加这个条件表达式后面冒号必须加,然后循环体前面是有缩进的这跟这个选择结构,还有它上面的放行是一样的。你比如说我们这个三四它都有缩进,而且这个缩进一致。所以说第三行、第四行它就是我们的循环体。每循环一次它就只执行第三行,第四行、第五行就不是它没锁定。那么它的执行过程,只要条件表达式为真,它就执行我们的循环体。执行一遍循环体之后,它接着再进行判断,再为真真再执行,再为真再执行。只要为真,一直执行,直到这个条件表达式为假we force,它在退出循环执行后面的语句。那么我们下面来看这个程序语义,我们有123455个程序,S的主数值是0,我们来看它这个循环几次YS小于等于30。然后第一次循环的时候十还是十,小于等于30这个条件是真的是满足的,所以说它会执行这个语句,同样的S给这个十给它打印出来执行一遍,S等于S加10对吧?把S加十的值赋给SS在最初是10,所以说S就变成了20,接着我们来执行第二遍循环,20小不等于小,20小于等于三什么?也是成立的。所以说指针然后打印SS是20,执行这一遍S又在自身基础上加持了,所以说变成了30。30满不满足呢?三十也是满足的,小于等于满足一个就行,所以说三它也是真的,所以说它会等于30,在30的基础上又加10,所以说它40满不满足呢?不满足了,40小于等于30,既不小于也不等于,所以说它不满足了。它是甲,他就不执行这个循环体的,这个循环体就结束了,234就没了,它就执行什么?执行循环体后面的语句print good,能能能区分开来,能区分开来,能区分开来,我们直接上真题。这个没什么难讲的,就是为真就执行,为假就不执行。还是这个题,他们对折到之后,纸的厚度可以超过珠穆朗玛峰的高度。小字使用拍照语言编写程序,遇到一些问题进行帮助他修改程序。我们还是先自己说,答案是27次,27次解题思路。那么本题是个循环翻倍的过程,我们应该使用循环结构。但是我不知道循环的次数,我知道循环的条件,我们可以使用Y2循环。那么while循环我们要确定两个部分,第一个是循环条件,第二个是循环体,对吧?当纸张厚度是低于这个时候,我就一直翻倍,我们设纸张厚度为H,这对应的python语句是多少呢?对应的条件表达式就是YH小于等于8844.43。只要这个厚度小于8844.43,我们这个循环就一直执行,这是我们循环条件。第二个确定循环体,每循环一次我的厚度是不是要翻倍?不光厚度翻倍,我还要记录一下次数。因为这个答案它要有输出对应的次数,所以说次数我也在自身基础上加一,所以说每执行一次我的纸张厚度就在自身基础上乘2,我的对折次数就在智能基础上加1。我是只当次数为K,厚度为H那就是H等于H乘2,K等于K加1。所以编写程序的时候就很简单了。首先我们要定义变量厚度和这个对折次数。刚开始的时候没对折之前厚度是0.01,转换成米次数是0。然后我们开始循环了,只要你这个厚度低于这个8844.43,我就不停的翻倍,每翻倍一次我次数还得加1,直到你这个高度超过这个时候,就说明你厚度退出循环了,我们最终给他结果进行输出就行了。人家让你输出啥,输出对的次数,所以说我们应该输出这个K对的次数应该是我们的K,没问题吧?没问题。接着我们来看这个题目,H也对,K也对,条件当这个高度小于8844.43的时候,它就是一个循环,哪错了呢?YL也对,条件也对,少一个什么少一个冒号,所以说你要加个冒号。第二个每循环厚度在自身基础上翻倍,那次数加1,你看厚度在自身基础上翻倍,那应该是H等于H乘2,它应该是一个赋值的过程。而这里什么两个等号,两个等号代表判断是否相等,判断H和H乘2是否相等。这不对,我们应该是负值,所以说你要把两个等号改成一个等号,然后每循环一次后头翻倍次数加1,然后输出对折次数,对折次数,我们这里就H和K两个变量,应该输出谁呢?应该输出我们的K,这就是填空题。这个K你就必须得根据题目来进行分析得出了,所以说这个题目就讲完了。那接下来我们来看一下这个第二个字典就死循环和我们首先来看一个对的同学,下面循环的循环体执行次数为I等于1YI小于等于5,I等于I乘2,又是每次都攀比。我们不知道循环次数,我们知道循环条件。我们来看一下当第一次循环的时候,I等于一的时候,这条件满不满足呢?满足一小于五吗?满足二也就在自身机长翻倍,所以说二也就变成2。当循环次数等于2的时候,二小于五也满足也是真二就变成了4。当这个循环次数等于3的时候,四也小于5,所以也是甄二就变成了8。然后第四次循环的时候,八也小于58不小于五了,所以说它就是假,它就不执行了,所以说他总共循环几次呢?总共循环了我们的三次,这是第一个程序。那接下来我们来看第二个程序,这个程序I等于1,I等于I乘2,唯一变的什么?唯一变的是这个I大于0。人家是原来是I小于5,现在是R一大于零了。你发现这个程序有什么问题呢?有什么问题?有一个问题就是你这个RE初始值本来就是一,每次在自身基础上翻倍,你这个R一大于0,这不是永远成立吗?你这个循环它不是永远执行吗?也就是说这个循环体的条件,它不可能结束,也就是说他陷入了一个死循环,我们这种情况叫死循环,死循环就是循环条件永远为真,我们循环体无限执行,该循环是死循环。那么死循环的出现就像上面变成的,也可能是代码编写错误,也有可能是我们故意的。比如说我们有一些是24小时不间断运行的程序,网站,系统,冰箱,这个时候它里面就写死循环,写死循环的时候,我们有更简单的一些,你while只要条件为真,它不就一直循环。我就直接y two,它也是这种使用完了的效果,或者说Y一我们考的时候,他非常喜欢用这个YL1,这个Y一啥意思呢?那一看Y一后面不跟,应该跟条件表达式,你怎么跟个数字?在python中非零整数就是to,也就是说Y耳机它就是to的意思,你这个Y2机point good对吧?你说这是个死循环,它会一直输出我们的gold。那如果说我们想在循环体里面结束循环怎么办?我们可以通过break语句,break打断,在英语中它就强制打断结束循环,比如说Y21这不死循环吗?执行完第一遍print够了的时候,我们给他写个break,他见到这个break,它循环体就结束了。不管你这个条件成不成立,我这个循环只要见到break,这个循环就不循环了,所以说它是强制打断的,而我们这里也一样,我们range 1逗号6,按照上节课讲,它应该是含头不含尾,12345生成,它应该输出的结果应该是12345。但如果说我们在这里加个break,它在执行第一遍循环的时候,输出一的时候,它就执行到这个break,它就结束循环了。所以说它只会输出个一只会输出一,这有两个点,一个是Y1,它代表使用外,一个是。他代表打断循环。我们来通过一个题看一下,这也是24年25年真题,明年26年很有可能考两个。活动中小明使用pent语言编写一个猜数游戏,计算机内先随机产生一个1到100的谜底整数,它产生的时候它是通过这个random随机函数来产生的,1到100它就会产随机产生的。有同学来猜,如果猜对了,游戏结束,输出猜错次数。你看如果猜对了,就显示猜对了,游戏结束了,不让猜了。如果猜错了,比它大就显示猜大了,比它小就显示猜小了,继续重复猜错,直到猜中正确,最后输出猜错数。本题它是一个重复猜测的过程,题目都讲了,但是我没有办法确定你具体的循环次数。我也不知道你几次能猜对,但是我知道你的条件,如果说你输的数和我猜的数这两个数一样,我这个程序就结束了,所以说我采用这个while循环,每循环一次我就让用户输一个数。每输一次到时候我就判断大,就这个输出大小,就输出小,相等,我们就结束循环。我们现在来看这个程序,你看人家这里就用的是Y点1,它就死循环,死循环这里还有个break,两个相等的话就break。首先第一个,这他没告你错,这只是一个说明。然后生成一个随机数字N就代表猜测次数,每循环一次我猜错次数也得加一,他又要输出猜错多少次,然后显示随机密闭已生成,接着Y21死循环了,死循环它就是说一直会重复这个参数次数,一直到这个排队。然后接着此行语出错误请修改,它会让用户输一个1到100这种书,你首先看看输是input没问题。怎么说是int,怎么说是int,int你这什么东西,你怎么多个T,所以说你要把这个RENTT改成int,这是一个比较。怎么说呢?之前没遇到过,他是会这样出int然后我现在BB什么呢?B是我输的数字,A是系统上的生成的数字。如果我输的数字和系统生成的数字两个相等的话就显示猜对了,猜对成汁之后干嘛?游戏结束,游戏结束是不是就意思我打断这个循环就不要再猜了,循环就结束了。所以说你看他显示你猜对了,输个break,break作用就体现出来了。然后if我输的数字和系统产生的数字成什么关系时,它显示太大了?是我输的数字比系统产生的数字大,它就显示太大了。所以说这个地方你应该显示我们的大号大于号,填充大于号。还有这个我忘讲了,这个if a等于B你会发现它后面少了冒号,所以说你要给它加个冒号,这个错误太简单了。然后最后否则那你不大于B那个不等于B那肯定就拆小了。然后输出谜底式,这就是我们的Y循环,基于条件的循环。这条件迈达斯成立一直一直就执行循环体,它是一个这样的循环,一直到假为止,L一代表死循环,break代表强制打断循环。我们本节课就到此结束,大家再见。