今天我们来学习 python 的 while 循环嵌套,跟我们之前学习的判断语句 if 一样, while 循环也是可以进行嵌套的。 while 循环嵌套简单来说就是 while 里面还有一个 while y 循环嵌套的语法格式也非常简单,我们只需要在外层 y 循环内增加四个空格缩进,再写一个内层的 y 就可以了。 接下来我们来看一个简单的例子,用 while 嵌套打印矩形,在这里我们规定矩形的行数和列数都为五。 在使用 well 建套之前,我们先使用之前学习过的 well 循环来实现概 功能。首先我们先在 y 循环上方定一个变量行数 i, 因为我们说行和列都是从第一行第一列开始,而不,而不会说从第零行,所以我们就给 横竖变量 i 复值为一。接着我们再使用 y o 循环,循环条件就是 i 小于等于五。 在 y 循环内,由于列数也为五,所以每次循环输出的时候,我们都要输出五个信号。 不要忘记每循环一次,计数器就要加一,否则就会进行一个无限循环运行程序。我们可以看到输出结果成功输出了一个矩形,那简单的 yo 循环做完了,我们接 接下来就使用外要循环嵌套来打印矩形。我们在刚才的行数外要循环里面再增加一个小循环,专门负责当前行中每一列的显示。所以我们定一个裂变量接,同样给它复制为一。然后当列数小于等于五十, 输出信号有多少列就输出多少个信号。在引号后面我们还使用了 end 等于引号,目的是不自动换行,不然的话每输出一个信号就是一行, 我们还不能忘记要计数器加一。在这里有一个很重要的 print 引号, print 括号,括号里面可以不带引号,作用就是自动换行, 因为我们刚才使用了 end 等于引号,所以 pro 函数它不会自动换行了,所以我们添加一个 pro 的括号,目的就是使每一个信号输出完成后都能够自动进行换行,不然所有的信号都会输出在一行里面。 学完了打印矩形,我们再来学习一下打印三角形。打印矩形和打印三角形是相类似的,代码结构上是没有什么变化的,但他们最大的区别就在于第二个 y 循环里面的判断条件。我们可以看到右边程序的运行结果, 可以看到每一行的星都是逐行递增的,并且第 n 行有第 n 个星,所以我们第二个判断条件就不单纯是列 数小于等于某个固定的值,而是列数变量小于等于行数变量。行数循环了多少次,列循环输出的信号就有几个。那我们运行程序可以看到程序成功输出了一个三角形, 有刚才打印三角形的案例作为基础,我们再来看一道非常经典的实例,打印九九乘法表,这里是不是就是和我们刚才打印三角形也是相类似的, 输出结果也是一个三角形,他们唯一的区别就是新号变成了多少乘多少等于多少,所以我们就把刚才代码中输出新号改成输出这个代码格式就可以了。 那我们就可以使用之前学习过的 iphone 号站位符进行一个站位输出,同样我们也可以使用 f 进行一个格式化输出,在大括号里面插入一个变量,在这里我在 and 等于心哦 等于引号中间加入了一个杠 t, 杠 t 它是一个转译字符,它是为了让程序输出时数据能够对齐。那我们运行程序也可以看到九九乘法表也成功运行了。
粉丝107获赞379

好,同学们,那么这一小节开始呢,咱们开始去讲解这个循环嵌套他的应用了,那应用啊,无非就是用语法,咱们去做一些实际工作当中能够用得上的这些场景,咱们去浮现一下。 那接下来啊,听老师讲,其实我们最终极最终极循环潜逃的应用,我们就是为了做出来一个九九乘法表的打印, 那这个九九乘法表具体长成什么样子,功能是什么?是不是肯定不需要老师介绍了,咱们早在小学的时候是不是就学过了?但是老师必须提前讲啊,这个九九乘法表是很有难度的,里边要注意的细节比较多,所以这个时候呢,老师这样搭跳板卖台阶的形式, 最终啊,为了上升到九九乘法表,但是我们先来几个小例子,把这个流程给他走通了,然后再把它套用到九九乘法表这个规则上面来,不就行 了吗?对不对?哎,那么这个时候啊,老师准备了几个跳板,比如说第一个,我们要打印一个正方形的型号,什么是正方形啊?就是长成这个样子,一行五个,然后接下来我们来五行,那接下来啊,这个需求完成之后呢,我们就把它在难度升级一点,升级到打印三角形的型号, 长成这个样子,这是不是三角形的?其实啊,同学们有没有发现,你回忆回忆那个九九乘法表的形状,是不是大概就是一个三角形的,对不对? 哎,那么接下来啊,就这个三角形的型号,已经有了九九乘法表的雏形了。那接下来啊,朋友们再看,如果这个三角形的型号能打印出来,我们就把这 这个循环嵌套的原理啊,应用到九九乘法表身上,咱们来看一下,九九乘法表是不是就是一个三角形的这么一个形状啊,对不对?哎,所以说啊,我们先搭跳板,第一个就是 打印正方形的型号,第二个打印三角形,第三个我们把这个原力用到九九乘法表就可以了。那么接下来啊,同学们跟着老师一块,咱们反到最上面最基础的这个例子就是打印这个啊,矩形的这么一个型号啊,那么在这个型号这个位置,老师问同学们,你观察到特点是什么? 哎,其实同学们都能看得出来,是不是这是一行,这一行呢是不是要出现五次?其实啊,同学们注意啊,原来有同学跟老师讲,就是老师这个例子啊,我们根本不需要循环前套,写 一个循环就能搞定,这么想想怎么做呀,是不是就,哎,对,非常好,不是你的打印五个心,这里面我是不是哒哒哒打成五个心,然后五个心之后,我是不是要五行,那把这打一行的这个破音呢?我重复执行五遍是不是就可以了?但是听老师讲啊,确实是可以。老 老师这里为什么要讲这么一个正方形矩形的这么一个型号的打印啊?是为了做九九乘法表对不对?所以说啊,老师这里就有一个硬性要求,同学们切记了,就这个 长方形矩形的这么一个信号,我们要用循环嵌套把它做出来,要不然我们就没有必要打印这个信号了,为的就是九九乘法表做准备啊。好了,那么接下来我们来看啊,首先这里边是不是一行有五个行情?那是不是一共要五行这样的行情? 那么这里我们用循环嵌套,咱们先分析步骤,再去写代码,那接下来跟着老师回到拍长部里边来啊,在拍长部里边的话呢,我们先打住是去分析步骤, 那我们首先想啊,首先我们第一步是不是我得想办法去打印一个星星,对不对?然后接下来注意第二步干什么?我是不是得要一行五个? 一行五个,那这个时候怎么办啊?一行五个怎么办?是不是循环?循环什么呀?循环五个星星在一行显示 是不是就可以了?好,那么接下来注意了,那我们第三步干什么呀?是不是就是打印五行行不行? 那这个五行星星又怎么做呢?是不是还是循环?他循环的是什么?老师问他循环的是什么?是不是他循环的是内 一行五个的代码是不是就可以了?好了,那么这三步总结出来之后啊,这边听老师讲,在这个例子当中啊,老师准备了两个特别有意思的地方,那老师啊,先会带着同学们去看看他有意思的点是什么,然后呢 我们再把这个问题给他解决掉好了。那么首先啊,我们进行第一步,是不是打印一个星星,老师问打印一个星星怎么做? 哎,打印一个星星,那是不是来一个培训他,然后写一个信号输出是不是就可以了?那么这个时候啊,第一步搞定,第二步一行五个循环,就是把这个培训的信号是不是循环五个,那么接下来怎么做? ok, 是不是就是比如说我来一个,哎,然后出示值来一个零,接下来呢?我是不是万欧,哎,比如说小于五,好, ok, 小于五是不是取不到五?那就是零,一二三四吗?对吧?那我是不是想让这个型号循环执行?那所以我是不是把这个谱引他去缩进一下? ok, 当然还是不要忘啊,我们是不是还有一个 id 字增量? ok, 那么这个写完之后注意啊,马上是不是就要右键运行了,我们特别注意了,将 迎来第一个比较有意思的点,注意了啊,老师,右键运行走你,老师,你骗人,你不是说我们要打印一行五个星星,让五个星星不是在一行显示吗?为什么这五个大哥都换行了呀? 哎,那接下来啊,注意,我们想一想,这是为什么?我们想想,哎,我这是一个 pro 音的这是一个 pro 音的,这是一个 pro 音的。每个型号都是培音的,为什么每个型号都换行了呢?那接下来,哎,同学们想想,是不是原因一定是出现在 pro 的这个函数身上? 那同学们再想想 carry 的这个函数。老师提示提示啊,除了可以书写打印的内容以外,还有一个是,哎,这就特别好了,同学们已经想到了,是不是逗号隔开还可以写一个嗯的 结束符号。那老师问了,默认的结束符号是什么来着呀?特别好,感恩,对不对?是不是就是换哈, 你比如说老师这里啊,就手动写一个默认结束符号是杠,恩,换行,现在右键软,我们发现五个星星是不是仍然是换行的?那接下来我是想让他换行还是不想让他换行?五个星星是不是在一行显示?那就是不换行,那怎么办?取消杠恩结束符是不是就行了?那接下来啊,老师就把杠恩删掉, 删掉之后再去右键软准备注意了,五个星星是不是在银行显示了? ok, 那第二步工作是不是完成了?所以同学们课下在写代码的时候要注意啊,这 里边摁的结束符取消杠恩回收换行是不是就能做到五个星星在一行展示了呀?对吧? ok, 好,那么这个搞定之后啊,这是不是就是我们一行星星?这一行星星是不是要出来五行才对? 那接下来怎么办啊?是不是循环?循环的是什么?是不是老师括选住的从第六到第九行代码是不是也要循环执行?那怎么办啊?是不是再来一个循环是不是就可以了?那么这个时候呢,老师来一个接,等于一个零,然后接下来呢,老师再来一个外啊接,比如说小于五, 那接下来要循环直行的代码全选之后太尾一缩进,当然还要注意的就是我们的接 是不是也要有一个自增量?好,那么接下来注意啊,我们马上要迎来第二个有意思的点, 准备注意啊,刷新我们想要看到的,是不是这是第一行,然后回程换行有第二行,回程换行有第三行,对不对?哎,现在我们右键转啊,同学们注意来看了,走你!老师,你又骗人, 你不是说这里边要让他换行吗?怎么不换呢?那接下来我们同学讲,为什么不换啊?因为我们所有的输出都依赖于否认他。 那 sorry 的这里是不是已经取消了杠 n 的结束符?那我们现在是不是要把杠 n 这个结束符还让他在一行完成之后换行,这个时候怎么做呢? 在这个地方啊,老师就不纠结同学们了,注意啊,你们还记不记得这是一行星星来着,对不对?那么这一行星星结束之后要怎么办啊?换行换行怎么做呢?其实咱们啊,在这个拍摄当中,这个 plun 的函数刚才讲了,是不是默认就有一个换行这么一个功能 n 的结束符吗?所以这里边呢,我不需要输出任何的数据,但是呢,我写一个空的 plunt 要的是什么?默认的杠 n 结束符,是不是保证一行星星打印完成之后,让他来一个回车换行啊,对不对?好,那么接下来啊,当调用了一个空的 pro 之后,那么现在再跟着老师右键转一下来看,第一行,第二行,第三行,第四行,第五行是不是就实现了回车换行展示了? 那么接下来啊,这个完成之后啊,老师在这个地方啊,加一点注视,哎,等于零开始,这是不是就是我一行一行星星开始? 哪是一行行行结束啊?是不是就是循环挨加等于一的后面?那老师呢,把这就加一个,这是一行行行结束,一行行行结束的时候要干什么呀?换行显示下一行,对不对?哎, 换行显示下一行,那么所以这个时候呢,我们是不是就利用谱引他默认有杠?恩,这个结束符让他去换行是不是就可以了?那么这个时候呢,是不是就是这是我一行行行,那么这一行行行呢,是不是由接这个变量控制接这个技术去控制选 环,执行了五次,是不是就做到了打印了五行星星,每行有五个信号啊,对吧?哎,这就是我们的这个正方形或者叫矩形的这么一个信号的打印 好了,那么接下来啊,跟着老师一块回到咱们的这个啊小笔记当中来,在笔记里面啊,我们说打印星号,这 正方形也好,矩形也好,他都是为了将来做九九乘法表的时候去做准备的。咱们看一下老师在咱们的这个呃,笔记当中留下的这个元代码啊,咱们来看一下,那 这里呢,这个笔记啊,注视就写的非常详细了,这是不是一行星星的开始,到这是不是一行星星结束了?那么一行星星结束之后是不是要换行?所以这里是不是借助了一个空的配音,他因为利用配音他的默认换行结束服,是不是就做到一行之后以换行去展示下一行信号啊,对吧? 哎,这就 ok 了,好了,那么这个代码啊,简单实现之后,同学们对于这种实力型的代码,课下应该怎么办啊?是不是多敲几遍呀,对吧?好了,那接下来老师把咱们这个视频啊,稍微暂停一下。

啊?他需要输出这么多?呃。十行十行十八列, 十行十八列,就是这个十行十八列,那么我们先把 十行十八列不因此挨等于 一,哎。小于等于十,哎。加加, 那么十八列的话怎么办呢?火 a 等于火箭等于零, 借 小于等于十八, 小于等于十小于十八加加加。 那他第一次呢?他肯定是输出 这是 a, 再加上键, 然后再去磨 去十八。 妈妈点哭了,点出来了, 呃。做完以后呢,就再输出一个回测,这个什么意思呢?就是他等于 嗯,他等于零的时候,呃,他们两个都等于零,那么他是 a, 然后呢,他等于 的时候呢,他就变成了 b, 他就变成了十八个,十八个完了以后呢,就是一个回车,然后第二行的时候呢?他从就是从 b 开始了。那这里为什么要除以十八呢?因为,呃,有可能他会大于十八, 戴十八了以后呢,他就嗯,他就换了,呃,他就变成一个, 嗯,我们来看一下吧。直接看一下这个结果吧,看看对不对,也许是错的。 嗯,发现他是对的啊,那同学们可以看一下。他如果是一啊,他是零零,那么 a 加上零的话,他是 a, 然后零加一, 嗯,他是 b, 他这样子下去,如果你不会写,不会写这个货循环。 呃,对于这道题来说,我这样子全部打出来应该也是对的。 这个就是一个榆树的力量,因为他如果是一的话,当这个挨等于一的时候,嗯,这个地方如果变成呃十七的话,他会达到就是一加十七,他会 一加十七,他他变成了十八,十八的话,他磨磨十的话,他又会变成 a 的。如果 a 等于二的时候,如果这个 a 呢到二了,那么结呢?他到十七的时候呢?他会变成十九,这个地方会变成十九,那么十九去除以十八的话他会变成一,那一的话他 a 的下一个他会又会变成 b。 呃这个就是一个榆树的力量。嗯,注意这个地方是从零开始的,如果你要从一开始的话,呃就会比较麻烦。 榆树做榆树的话一般都是从零开始的。我们把这个 提交一下看看对不对。 嗯答案错掉了, 一二三四五六七八九十十行。对的呀, 还有一包湿巾。 因为 哦我停 看错了,题目看错了,他是他是 abcde f g, 然后呢? b abcde f 然后 cb 啊我我题目看错了,题目看错了。 嗯他他并不是一个循环, 今天状态不好。这个这个错了,他是有两个部分组成的,就是第一个部分是顺着来,然后第二个部分呢是逆着来。 一种最无耻的方法呢,就是按照他这个方法把它全部打出来。那肯定对的, 就是用最无耻的方法做呢,就是他有,他有十八 二四六八十十二 啊,二四六八十二四六八,就是用这种方法做是最无耻的啦。 然后呢打一个回车 然后复制第二行,第二行呢他是从 b 开始的, 然后 b 开始,然后倒倒一个 a, b 开始, 然后第三行 他是谁开始的? 在这里加上一个 c, 然后这里把它去掉, 就是 cbcb abcd 这样子, 然后你继续下去继续下去。第那这里加上一个 d, 这里删掉一个 啊,这里再复制一下, 再加一个, 这里加一个亿,然后这里删除一个, 加一个 f, 这里删除一个 二四六 句,这里再删除一个 二四六八,还差两个。 好,我们这样看看会不会对, 这样做的话就没有什么技术可言了, 我就直接提交。 哎呀,还是错的。 呃,同学们,还是你们先下课吧,我把那个呃剩下的东西我录好以后再发给大家吧。呃,今天又又拖课了。 我, a b c d e f g h i g k 二,我靠,我这里又打错了 啊,这里少了一个人呢。 还错, 我服了我服了。 abcde f g h i j k i m o p q 哦,英语没学好啊? 好,现在都对了啊,这个这个题。

欢迎来到默然说话的课堂啊,我们今天这一讲呢,重点就是来给大家来介绍啊,就是这个什么是 呃?二重循环是吧?啊?那么通过前面的讲解呢,就是那个平均分的一道题目,大家其实已经体会到了二重循环是什么了啊,就他这个定义呢,很简单,就是一个循环体 的内部又包含了另外一个完整的循环结构,是吧?啊?一个完整就是好像也不可能不完整,不完整就包错了,是不是啊?所以包含了另一个完整的循环结构,这个呢就叫做二重循环。那么二重循环呢,除了我们前面写过就是货循环里面再套一个货以外,其实 你也可以写成别的形式,比如说 y 里面再套个 y 对吧?读 y 里面再套个读 y, 是不是?另外呢,也可以互相劝,互相牵套,对吧?啊?互相牵 套啊,所以这个就其实就是循环的这个写法啊,那么另外一个呢,就大家要注意到的是我们的外层循环和内层循环,对吧?里面呃,都可以写代码表,内层循环里面可以写循环操作,对吧?啊?外层循环里面也可以写循环操作,这个我们已经看过了,上一个例子里面对不 对?都有的是吧?啊?都有相应的例子的啊,那么就是说在这个过程当中呢,大家呢要抓住一个重点,对吧?啊?抓住一个重点就是外层循环循环一次是吧?内层循环呢?会被执行一遍 是不是啊?所以就会被循环啊,就全部做一遍,然后再到外层的下一次,是不是啊?所以这个地方呢,大家呃注意一下,是不是啊?有这样的一个情况哈,那么关于我们呃上面的啊,这个内容,那么就是在这个使用的过程, 丹东,我们这已经跟大家呢,其实已经做了介绍,对吧?啊?代码呢?已经写了这个呢,就是跟这个一样啊,就不同的是他的 w, 他的这个萨姆是一个 w, 我们我们写的是声明称的一个硬特字,是吧?啊?声明他声明称大,我们这样子能计算的话呢,就最后的平均分算出来呢,会会是一个带小数点的, 是吧?啊?带小数点的啊,那么另外还有一个就是这里是不是你看他又声明了一个平均分的数组,是吧?啊,大家可以看得出来啊,因为他只是写了主要的核心部分声明的代码没有啊,这个地方呢是一个数组,是吧?大家也可以尝试看, 不能把它改造成这样的一种形式,是吧?啊,如果你能把它改造成这样一种形式的话呢,我觉得你对代码的这个使用来说可以说是一个很大的进步,对吧?啊,那你如果你改造不出来也没关系,是不是?啊?那你也可以联系我问 怎么来改造,是吧?啊,好,那么这个是关于我们二重循环啊,大一个总结哈,那么接下来我们肯定还需要再看更多的题目,对吧?啊?看更多的题,这些我都不说了啊,这些我们前面 都跟大家讲过了,对吧?外层是数目啊,班级的数目,内层呢,他是一个参赛人数,是不是他都有一个阿维的这样的一个呃, 这样的一个参数是吧?啊,所以这个地方呢也才有二重循环的存在,是吧?好,那么接下来我们再来考虑另外一道题目,是不是哈,这道题目呢,就是用这个字符来拼各种图案啊,这个可以算是我们最最最早期的啊, 这个这个这个这个,哈哈,计算机的图案啊,就是用字符来拼是吧?啊,用字符来拼啊,就是大家不是经常还会输入表 表情符吗?那个表情符最早就是用用的字符是吧,用各种字符来拼是不是?那么这个地方呢,我们就是要用一个新号呢来打印一个矩形的图案,是不是啊?打印一个矩形的图案啊,那么这里呢,就是说呢要使用二重循环来实现是不是?好,那么现在我们呢一起呢来 尝试做一做是吧?啊,来尝试做一做,好,现在呢,打开我们的麦一是吧?啊,打开我们的麦一,然后呢?我们赛杰克已经见过赛九零九包了,对吧,我们再重新新建一个是吧?啊?新建一个 克拉斯是不是?那么我们这个绘图英文单词叫做做是吧? d r a a w 是吧?啊,我们叫做 tst 吧啊,这个地方呢,实际上是要啊写这个吧,就是因为现在要画矩形吗?啊啊, 就写作啊 ect 是吧啊啊 ect 啊,就做啊 ect 哈,然后大家还问方法啊,大家跟不上的可以按暂停,后面的代码跟不上也自己按暂停啊, 我这里呢,因为我不知道你写到什么地方跟不上,对吧,所以这里我后面就不提醒了啊,我就把这个代码说完,好,那么这个代码写,那我们还是先来说一说,如果我们不用循环对吧,可能很多同学一开始让你就一来就写循环,可能 很多同学会写不出来,那我这里简单的说一说,是不是就是这个代码是一步一步进化出来的,如果我不用循环,我能打出一个矩形来吗?是不是啊?那么 讲到这里大家应该说可以吗?就是拿那个 csml 的输输出这些吗?一排一排,一排一排的信号吗?对不对哈?你就可以把它打出来了吗?对不对啊?确实是这样啊,确实是这样,我们那 在打这个信号的过程当中,大家要看到哈,他其实有两个关键的数据,就是说当我说哈,你现在就写吗?打吗?对吧?你会想到什么?是不是?我不知道你会不会想到行,还有列,对吧?打几行每还有几个信号, 每一含有几个信号,是不是就是列?对,你要知道啊,这是一个二维数据,是不是啊?就是刚刚我们提到了是不是二中循环的一个重点,就是他要是一个二维的,他不是一个二维的东西的话呢?你二啊,你用二维循环呢?我觉二中循环那就比较那个了,对不对?就说所有的实现实际上是可以互相替换的,对吧? 啊?好,那么现在我们来看一看,如果我们直接写,是吧?就是 s y s out 啊,刚才大家有没有看出来是极寒激烈啊?啊? 五行五列啊,我告诉大家,是不是这里要打的是五行五列的型号啊?好,那么每一行都是 五个信号,一共呢?这样要打五函啊,重复吗?重复哎,一个可以用循环,还有一个呢?对啊,你可以使用 看着 c, 看着 v, 是不是?哈哈哈,粘贴啊,那现在就可以打印出一个武汉武力的举行来了吗?对不对啊?现在我们来执行一下,看一看,对不对? 看到了吧?哎,这个就是一个五行五列的信号,这个能理解吧?这个没有任何问题,这个应该早就理解了,对吧?写到今天第九章,那这个应该是在第第一章就理解了,对不对啊?就无非是把前面打的那种,是吧?个人信息换成了 型号吗?就是这样对不对?换换符号大家肯定能理解,那么现在呢?接下来我们就来套循环,对吧?那么现在大家能看出来了,是不是这里的这个 csm 点 out 了,他还是重复了五遍啊,是吧?哎,对,重复五遍,那么大家都知道吧,写个破 循环吗?把这个代码重复五遍吗?对不对?樱桃 i 等于零是吧? i 小于 五吧?对啊,然后挨加加啊,这个循环现在对大家来说应该没什么大问题了吧,应该一看就懂,是不是啊?就是这样吗?因为我要打的就是信号啊,跟跟爱没有关系,对不对 啊?哎哎,唯一的关系就是我要循环多少次吗?现在是五次吗?那我就这个不就出来了吗?对不对啊?我们执行一下来看,你看是不是也是五个星, 好,跟刚刚执行的是一样的吗?对不对啊?所以这个就是我们第一步,那么接下来就是各位同学就是我们要去讨论的一个问题,对吧?啊?那,那这个不都打出来了,为什么还要用二重呢?我一重循环都是新出来的,对不对 啊?啊?那么就是说我可以把我这个代码进一步的简化,对不对啊?那进一步来简化,怎么简化呢?就是 我这个已经每次只打一个信号,对吧?现在一次是打一涵了吗?一次这个已经就打了一涵,那所以这里我就循环五次, 对吧?那么现在我进一步就是到列上来说,那么列上的循环,对吧?那么就一次,如果我这个语句现在我一次就这样就是打一个型号,那这个要从 重复打几次呢?肯定还是五个吗?所以就有一个芮城的一个负荷循环,那这个要换个变量,对吧?借等于零,要重复几次呀?借小于五,对不对啊?就是五吗?刚刚不是已经说了吗?五含五裂吗?所以这个循环 是管裂的,对吧?啊,所以写到这大家反应过来了吧,这个循环呢?是管裂的啊,这个循环是管裂的,对不对 啊?是管裂的哈,所以大家就要知道啊,外层循环,对呗。啊,我们打一下注视,是不是啊?就是这个外层循环,是不是啊?是来控制什么函数, 对吧?啊?呃,内存循环呢?是控制列数,对吧?啊?现在这个地方是要打 努力,对吧?啊?那么在这个地方你就要这样写,好,我们写完这个之后执行一下,是不是啊?我们来执行一下看一看啊?嗨,结果大家一看,我靠,怎么成这样了?是不是怎么全部是数字的呀?这个数字的是什么意思啊?大家讲一下, 是不是能不能想出来为什么会是竖的呢?啊?有的同学应该已经反应过来了吧,是不是这个的问题, 是不是这个的问题?对哈,但你们一定要清楚,这个会换函,他打一个信号就换一行,打个信号就换一行,对吧?他就打出了这样的一排来, 就我们可以数数,是吧?五五,二十五,有没有二十五个星号,我这就不数了,对吧?啊?大家可以自己下来数一数,肯定是有二十五的哈,所以这个时候我要把这个给删了,是不是?那他就会横着了啊?那么现在我们再执行一次,看一看啊, 拿过来,好,我靠,怎么是成这样了?是不是?怎么只有一行了,对吧?啊?那是因为我把换行一去掉,我的整个两重循环没有换行了,但是我们是不是每一行都要换行呢?你肯定要每一行都换行,所以这个时候 我们还要在这个外层的这个循环啊,大家看我官标放在哪,是不是啊?在这个外层的这个循环这里再加一个换函, 你这里必须要有一个划痕,对不对?你没有这个划痕啊,我这里就加一个划痕,对吧?啊?那么大家再来看,是不是啊?大家再来看啊,你看是不是就出来了?五乘五, 是不是五乘五就出来了啊?五乘五就出来了哈,所以这个就是我们的二中循环,说白了就是外层控制函数,内层控制列数,那么 注意,你这里既然是控制列数,那么就每打一个信号,你不能换函了,对不对?这就不能换了啊,那什么时候换呢?当然是内存循环,循环完了,对不对?内存循环一遍,他就打完一行了,对吧?啊?然后我再换函,再加这个换函服,他就换下来了,对不对? 这个可以比较快速的给大家调试一下,给大家看一眼哈,我设个断点,然后调一下,给大家看一看,是不是这个是怎么出来的哈?我的第八个啊,第八个好像是进入,是不是啊?我们不去关心这些东西啊,这些都不关,你来看啊,首先是外循环进来,对吧?接着进入到内循环,好,第一个信号出来了,对不对? 不换涵,第二个型号出来了,对吧?不换涵。第三个型号出来了,对不对?不换涵好,再来看第四个型号,看,这是吧?看这里啊,看这个地方啊,第四个型号出来了,对不对?还是不换涵好。第五个型号出来了, 内存循环就结束了吗?那就这一行的东西他已经打完了,对不对?你看代码跳哪跳掉了他就会差个换韩服,现在没有,对吧?看到了吗?啊,没有啊,然后我点一下,是不是你再看,我再点过来,看到没有,他就到第二行了啊,现在就到第二行了啊,我们再来,是不是啊? 一个型号是不是啊?再来两个型号啊,大家看这里啊,看这里,是不是啊?三个型号是不是啊?四个型号啊,五个型号,哎,又换一行,对不对啊?接着来啊,你看内层打完一遍啊,外层执行一次,对吧?啊?他就这样啊,你看 看出来了吧看出来了吧?啊,我把程序放慢一点,你就看出他的效果来了,所以总是没打完五个信号到这来换个函,换个函,又进入下一次循环,对吧?啊,就这样五乘五 就出来了,是不是啊?他就是这样出来的啊,他就是这样出来的,是不是?具体的变量怎么变,你们下来以后自己再具体的研究一下,好吧。啊,所以这个就是我们的矩形的打法,这个是我们后面还有好几个图形要打,对吧?啊?那么这个是最基础的是不是啊?最基础的一个矩形, 后面其实就是在这个基础上外层函数啊,呃,内层列数,然后就把这个循环就可以循环出来,对不对 啊?那么我们书上,我们这个幻灯片上,对吧?啊?在这呢也给了个例子,不同的地方呢,就是这里啊,他把这个函数呢设成了一个变量,是不是 把五呢钻在这啊?放进去大家可以看到,是吧?你看,哎,等于零,哎,小于五绕死就是五吗?对不对?里面的是接接等于零,哎,接小于五是吧?啊?这,哎,他怎么回事?小于等于 五啊,这个要多打了啊,这这,这个循环不对,是吧?这个循环错了啊,应该也是小于五啊,这个地方写错了,对不起大家啊啊,我们改一下啊,这个就是 我们的控制,是不是?所以最后大家看到的就是外层是在控制函数其中的一个表现,就是这里有个换函符啊,你换函符,要不然这 然后内存呢?是来控制打印的列数,那么既然是一列,就是他是同意函里面的东西,你不能化函,对吧?你要打横着打,是不是啊?所以这个时候不能带那个 l n 是吧?啊?不能带 l n, 就是这样的,就可以把这个能打印出来啊,好,那么这一讲呢,我们就讲到这个地方啊。

欢迎回到 c 语言编程入门,我们看这个题,使用 yo 循环把一到五的数字打印出来,那么首先打开 id 一,新建一个原文件,命名为 yo, 点 c, 先写上基本的程序框架,然后呢写主要内容。 我们首先声明一个迭代变量,来保存和跟踪这个变化的数字。 int 空格取的名字叫 count 初始化尾一,因为从一开始打印放到结尾,然后呢是 yo eg wil 括号,括号里面呢是一个循环条件,当条件为真时就继续循环,当条件为假时就跳入循环,那么这个条件就是到五就行了,所以这 cons 呢 就小于或等于五,后面呢是他的循环体,当循环体中有多条余句时,我们就用一对画过后呢给他扩起来。 那么首先我们打进当前的 cons 的内容, print f 括号引号百分号 d, 反写个 n 换行引号逗号。然后呢用变量 cont 的内容来填充百分号 d 括号放结尾。然后呢我们还需要做一个更新操作,因为这 ctrl 呢要从一达到五,所以呢每次换一次要增加一,增加一的话就是用简写 cont 加加放结尾, 然后呢是右划括号。那么程序呢,我们就写完了,先点击保存,再点击编辑,然后呢点击运行,这里就输出一换行,二换行,三换行,四换行,五换行。

本期我们来研究如何便利多个列表, 正常情况下,我们变异多个列表是通过这样来做的,先定一个 i, 让 i 等于零,写一个微号循环 i 小雨列表的长度 index, 然后我们打印列表的每一项,去索引 i names, 去索引 i ages, 这里应该是 ages。 打印结束之后,我们让 i at 原液,我们试一下,这样看不清楚。我们可以在前两个打印的末尾将默认的换行符替换成空格,这样我们就打印出来了,但这样很麻烦,有没有发现这 python 给我们提供了一个函数, 我们可以直接用爆循环 value in leap, 把要打印的列表放进去。 h, 我们打印一下 value, 看一下,发现 value 是一个原组,原组的每一项就对应列表的每一项。对,我们可以在这里来拆包 index name, 我们可以直接在这里打印这三个字,按和第一项一模一样,按只需要两行代码。本期的案例就到这里,谢谢大家。

好,同学们,那我们前面几个小节呢,已经给大家讲了 y 循环的基本的情况,大家应该会了。好,那我们这个小节呢,做一个小小的练习啊,哎,这呢我们用 y o 循循环呢,正式的去解决一个问题啊,比如说啊,这个地方练习呢,是输入一个正整数 啊,逆序打印这个数的每一个位啊,逆序打印这个数的每一个位, 例如当你输入一二三四的时候呢,哎,请你输出他的每一个位啊,个位是四啊,十位是三二一,这样往后走,当你输入五百二十一的时候,你输入一二五,就倒着把他的每一位打在屏幕二就可以了 啊,那我们如何去解决这个问题呢?如何去解决这个问题呢啊?我们这个地方呢,有个题目解析,给大家简单的看一下,其实我们想要得到输入的这个 n 的每一位,假设我们 数字是 n, 想要得到这个 n 的每一位的话,你会发现我们 n 的最低位是最容易得到的,比如说一千两百三十四的最低位四怎么得到呢?我只需要让这个数字磨上一个十,磨十就是除十之后的余数,我会发现很容易就得到这个四了 啊,就得到四了,对不对?所以通过模式的方式可以得到一个数的最低位,而当我们一一千二百三十四,我把这个四得到之后,这个四就没用了,那我想去掉它怎么办呢? 那这个时候只需要呢,说一千两百三十四,我除上一个十再付给我啊,比如说 n 的话, n 除上十再付给 n, 这个地方大家注意想象一下,四是不是就不见了?比如说一千两百三十四除十得到一百二十三,一百二十三跟一千两百三十四比起来,是不是就去掉了四啊?所以我们用 n 等于 n 除十的方式, 就可以把它的最低位啊就去掉,也就是说磨时可以得到一个四,而除时可以去掉四, 对不对?让大家想象一下,对于我们一百二十三来说,你想得到三是不是磨时得到三?除十去掉三,循环往复,这样下去是不是就可以把问题解决了,把这个动作重复执行几次,是不是问题就解决了 啊?我们呢,这个地方可以简单的演算一下,比如说同学们一千零八十三十四,你现在呢?这个地方一千零八十三十四呢?哎,这个地方磨上了十呢,我得到了假四。 而当我们这个地方呢,一千两百三十四呢?除上个十之后呢?我们发现,哎,除十之后呢?我这个时候就得到了什么呢?得到一百二十三好了,现在变成了一百二十三了,而一百二十三现在磨上一个十之后得到的是几啊? 得了的一个三,而这个地方我们说一百二十三除上十之后得到结果是几啊?啊?这个地方是不是得到一个十二 啊?大家注意,一百二十三相对于他来说是不是去掉了四吗?除十的效果去掉了四对不对?那这个地方十二相对一百二十三来说,是不是去掉了三呀?那这个地方十二再磨上啊?大家注意,我们等到十二的时候,我们说十二再磨上个十,是不是就能得到我们的二 啊?就能得到我们的二,然后呢我们说十二再涂上一个十之后呢?大家注意,我们相当于把二就去掉了,剩下一个一了,好,现在我们得到一, 而现在一在磨上一个十之后呢,我们余的还是我们的一啊,这一位是最后一位啊,每一次磨十,是不是拿到这个数字的最后一位,是不是相当于拿到了最后一位? 而当我们这地方呢,把最后一位一拿到之后呢?我们现在要去掉一,那是不是一涂上一个十,伤了个几啊?哎,这个地方我们除十之后呢,我们伤的是零,而得到零的时候,说明我们把他的每一位都拿到了 啊,每一位都拿到了,大家可以看一下我们怎么拿到的,这儿得到了一个四,这儿得到一个三,这儿得到二,这儿得到一,是不是把他的每一位都拿拿到了吧, 而只要我们这个地方的把每一位得到之后,我们就把它打印出来啊,当它变成零的时候,大家注意,我们把它的每一位直接拿到之后,打印出来不就完事了吗?在它变成零之前,是不是每一位都得到了 啊?这个思路大家应该听懂了吧,当大家听懂的时候呢,我们就可以把这个代码呢转换成我们的一种代码来实现好,对吗?那我们怎么实现呢啊?我们这里给上个假数是 n 吧,等于几呢? 我们可以通过这种方式输入一个值啊,百万 d 啊,逗号区里是 n, 当然呢,你在根据这个题目里面他要求的是什么呢?他说这个地方呢,输入无法的正,正数啊,他输入一个正的整数,那这个地方你也可以把它定义成一个无法的整数啊,都没有任何问题。 当然如果你输的本身就是正数的话,那这个地方写着 int n 也没什么问题的啊。给大家简单说一下,然后往往学话,在这个 n 不等于零的时候,大家注意, n 没有变成零之前, n 我就让它进了 n 是不是零呢? n 现在不是零。假设我们这输入了一百一千一,一百一千六百三十四, n 现在不是零吧,不是零我就进了啊,不是零我就进了,能明白吗?那进来之后呢?我说 n 磨上一个十是不是得到一位,而这一位我就可以把它打印出来的啊,我们这就给上一个什么 百发地啊,空格逗号,我就把 n 啊除十,哎,磨十这个结果就打在屏幕上。对于 n 是一千两百三十四的时候,大家注意啊,我进来之后,这样是不是得到一个单一四吗? 四百元完之后我不想要了,那这个地方我就说 n 除十,得到一百二十三,再付给 n, 大家注意,再付给 nn 这儿得到一百二十三,那我们循环再上来啊,循环再上来,大家想象一下啊,循环再上来, n 是一百二十三的时候呢,一百二十三,磨十, 打一减三三,打印完之后呢,一百二十三除十变成了十二,嗯,是十二,十二,再少了十二不为零啊,再进来十二模式就是减二二,打印完之后呢,十二再除十,上了个一一再过来,嗯,是一的时候为征,为征的时候我们占上了一模十,得到一一打印,然后一再除十,付给嗯的 n, b 是零了,好了,上来 n b 是零的时候,我们就停下来了,这是不是很好的去解决了问题啊? omar 蛋白一凿,大家看一下我们的效果啊,在这个地方,同志们注意,我们这就可以输入相应的值啊,来进行相关的这个啊验证,对吧?比如说一二三四, 好,我们这样点,一二三四,大家注意,走,你看四三二一声出来了,我们用了这样一个 y o 的结构就解决问题了。然后呢我们再来看,比如说我们刚刚的给的是一个什么呢?一二五啊,我们这个地方,比如说我们再给大家验证一组数字啊,比如说一哎啊,比如说我们这地方给成个一二五 啊,那这个地方代码一走五二一,哎,你看结果是不是引出来了,对吧?啊,这个简单的逻辑呢,其实我们就可以通过这样 y o 循环的去进行的一个处理,当然在这个练习里面,我们并没有用到博瑞克和可 a 鸟,因为这个代码呢,其实逻辑比较简单,当你在这个代码里面,比如说某种条件发生的时候,你想 及啊,尽快的跳出循环,或者说跳过本次学校后面的代码啊,某些代码的时候呢,这个时候就用 break, 肯定牛啊,就可以解决问题,好,对吧?那这个时候呢,我们有一个啊,小小的练习呢,去啊,学习了一下我们 y o 循环怎么来解决实际问题, 当然任何一道题啊,都有自己的解题思路啊,这个地方只是一道题的解题思路,大家未来能够多多去写代码,就能够多多的接触这种编程或者解决问题的思路,以后呢就能够写更多的代码了。好了,这个小节呢,我们暂时讲这里,下个小节呢,我们继续,好吧?

前面看到哇,后面跟着的代码呢,总是用花括号给框起来,这个地方为什么不用花括号框起来呢?原因就在于因为这个花括号内部的代码只有一行,所以呢,我们可以直接把花括号给省略掉, 然后在这一行代码的最后呢加上一个分号。当然这个打印的操作呢,它还是有一些呃难点的,难点就在于我们是先进行打印,然后再让变量挨的值进行一个自增。 同时我们还有一个小难点呢,就在于 i 是先进行自增了之后才来判断是不是小于等于五的,所以我们现在来梳理一下这个逻辑。首先 i 用一来进行复值,并不是拿一和五来进行判断,而是首先进行自增,所以 i 的值呢,从一变成了二了,现在我们就拿二来进行判断,二小于五是成立的,所以呢,我们要进行一个打印,很显然佳佳是放在变量的后面的,所以我们首先呢打印出一个二, 然后我们再对 i 的值进行自增,所以 i 的值就变成了三。此时我们来到了循环的判断语句,大家放在变量的前面,所以就变成了用四来进行一个判断, 那四是不是小于五等于五呢?所以我们又把四给打印出来了,然后呢,再量让四去进行自增,变成了五。当然呢,也不是拿五来判断,是拿五先进行自增后的六来判断是不是小于等于五, 那六显然是不成立的,所以我们循环就结束了,最终打印出来的结果呢,只有二和四了,选择 b 选项。