如何设置 yo 循环的中断条件,让 yo 停止循环呢?接着上个视频的代码,在 yo 循环的上一行创建编量 a, 并复制数字为一,将 yo 循环的条件改成 a 小于十,这里的 a 呢,小于十呢,就是条件,因为我们的 a 现在是等于一, 肯定小于十,所以呢,条件成立,可以循环。在 yo 层级下输入 a 加等于一, 意思是每次循环 a 都要加一个一,打印变量 a 执行代码,可以看到代码呢,循环了九次,因为在前九次的循环中, a 肯定都小于十,比如说第一次是一, 第二次呢,加个一就是二,第三次呢,再加个一呢,是三,条件成立,所以呢,可以继续循环。在第十次循环的时候呢, a 呢已经不小于十了,条件不成立, 所以呢,循环停止,这就是给 well 循环呢来设置终止循环的条件。
粉丝2000获赞7562

之前我们一起学习循环的时候介绍过,其中有几个语句可以跳出循环。第一个就是 break, break 的功能就是跳出当前的循环语句,你可以理解为就是当前的 forcover 都不执行了,直接就执行 forcover 后边的语句。第二是 continue, continue 意思你可以理解为直接这个 continue 后边的语句都不执行了,再重新跳到 four 和 well 的这个表达是判断那里开始执行下一次的循环。 此外呢,还有一个 s 语句,这个不是跳出,这个是表示当循环正常退出,就要去执行 ls, 如果你写了的话。此外还有一个 pass, pass 这个语句大家从字面上就可以理解,就是它里面其实什么都没有,就是个正位符, 你可以理解为这个程序我将来要写,但是呢,如果你现在留空的话,程序会报错,所以用 pass 来表示,以后我再去写这个程序。 老规矩,我们还是来看代码演示,这是一段简单的否语句,输出的是从一到九九个数字,后面还有在否语句之后的代码来进行参考。如果我们要求当 i 等于七的时候跳出不再执行这个否,那么可以在里面加入一副 i 等于七 break 异形的结果就是当爱等于七的时候,后面的八和九两个循环就不再执行了,就直接跳出了否语句。 如果我们希望 i 等于六的时候,在处于 i 等于六后边的代码都不再直行,那么就要使用 continue, 我这里插入 continue, 并且在 i 等于六后边加入一个 printer 啊,在执行的结果,因为前面的一二三四五都不会触发。二等于六,二等于七,那么当然那个 printer 循环题里面那个 protein 也会正常的执行。 所以我们在结果里面看到一二三四五后边都有一个 print 输出的 i t i 节的内容,那当 i 等于六的时候,那个 continue 就被触发了,这个时候因为我们说这个是转到前面那个负循环的循环头,那后边那个 print 就不会被触发进行运行了,这个是 continue 它的功能。 当然因为否语句后面那个 printer 始终是处在否语句之后的,他肯定不是不受否语句影响的。那 ls 会在什么情况下运行呢?在这种情况下,即使我们在否后面加了 ls, 他也是不会运行的。原因在于我们在 程序里面使用了 break, 人为的打断了他这个 for 语句的循环。如果把这个 for 语句的中的 break 注视掉,即使你用了 continue, 也表示这个 for 完全循环完成了,这个时候 as 就会执行,是处在我们 for 语句之后那个代码之前, 你会看到这个 print 添加完成了,这就是 brick, continue 和 else 三个语法的作用。

上节课我们实现了重复执行这道代码,但是我们账号密码输入正确了,仍然会重复执行。现在我们来看当用户把账号密码输入正确之后,怎么退出循环实现了。方法有两种,现在看第一种,我们知道 vo 循环能够运行,首先肯定是取决于他的条件, 当条件为去的时候,循环就会运行。反过来说,也就是当条件变成 fors 的时候,循环自然就退出了。 所以方法一就很简单了,也就是只要达到了我们要的效果的时候,就用代码把条件改成 fos 就可以了。那我们怎么把这个条件改成 fos 呢?现在我们直接放了个词在这,这样写很明显是改不了的,如果要改,那就要用到变量的概念了,我在前面写一个变量 condition 等于 cue, 然后条件这里我就写变量名抗低性, 现在条件我们写成了变量的形式,那我们就可以对他进行修改了。就是当打印了登录成功之后,就不应该再循环第二次了。所以我在这 在打印登录成功的后面把抗低性改成 phos, 注意这个抗低性等于 phos, 你不能乱放。如果你放在这里,就是说这个循环进来之后,你马上把条件改成了 phos, 这里循环不会立即终止,后面的音铺的和衣服判断都会执行,但是不管你后面的代码怎么执行,你输入的账号密码对还是不对,都会把循环体的代码执行完毕, 然后下一次条件判断的时候,条件为 pos 则结束循环。所以必须是放在登录成功这里,登录成功则不再进入下一次循环,登录失败则继续进入下一次循环 来运行看看。我先随便输入错误的账号密码,然后义服判断的时候,条件不成立,就不会执行这两行代码,而会直接 l 下面的代码就打印了账号密码错误,然后就会进入下一次循环,又让我输入,我再输入错误,他又让我输入,这次我输入正确的账号密码,易服判断条件成立,就打印了登录成功, 循环条件改成了 fus, 注意这里不是马上结束了循环,如果你循环体后面还有代码也会运行,是等到循环体的代码全部执行完毕之后,再回头判断的时候,发现条件变成了 fus, 循环才会结束。我在后面再打印一个 a aa, 再来运行一次输入正确的账号密码,就打印了登录成功,然后接着打印了 a a, 然后才结束的循环。我们来看第二种方式, 没有加布瑞克,这个布瑞克和我们前面讲的就不一样了,刚刚讲的方式是会把当前循环体的代码全部执行完毕,下一次判断的时候才会终止循环。而布瑞克这种方式,只要代码运行到布瑞克,就会立即退出本城循环,布瑞克后面的本城的循环体代码不再执行,言外之意就是循环也是可以欠套的, break 只会退出当前这一层的循环,循环欠到我们后面再说。我们再来看 break 怎么用,用 break 的话,这个变量就没有意义了, 条件这里放个醋就行了,然后还是在登录成功后面再让代码删掉,直接写一个 break 在这就 ok 了,只要代码直行到 break 就会立即结束本程循环来运行,看看 还是先输入错误的账号密码,衣服判断的条件不成立,就只信不到,不会给账号代码,就打印了账号密码错误, 然后打印了 a a a, 接着进入了下一次循环,然后我输入正确的账号密码,这样的话衣服判断的条件成立,就会打印。登录成功,然后运行 break 到这里之后,循环就会立即结束后续的循环停电了不再执行,也就是这个 a aa 就不会打印了,你来看,一敲回车就打印了,登陆成功,然后程序就结束了,根本没有打印后面的 aaa。 好,这就是退出若要循环的两种方式。

拍摄零基础入门,那这节视频呢,我从最简单的角度来介绍异常,这节视频是我第六十二期的视频。 好,那我们通过最简单的形式,也就是通过练习。哎,我们在练习当中故意让程序出错,从而体现出异常处理,他可以让我们的报错信息优雅的展示以及异常处理,可以让我们的代码避免中断啊,就是即使出错了,我也可以让他不中断啊。 好,那在这呢,我首先准备了两个,呃, txt 文件,它们分别是两个不同的英文小说,我们的练习呢,就是统计文件当中它的单词数啊,这个是我们蟒蛇书当中的例子 啊,那在这呢,我们快速创建 lx 点 py 文件,然后呢我们导入模块以及类啊,紧接着实力化啊,那 第二行代码就是说我们企图去操作 a a a 点 txt 这个文件,那接下来我们通过 pass 这个对象来 read 下划线 text, 也就是读取文件内容,那在这呢,其实就是读取内容之后,把它存储到左边的这个变量当中,也就是 contents 啊,那接着我们针对这个 contents 呢?呃, 利用这个 speed 这么一个方法啊,那进行一个分隔,那这个方法我没有传任何参数,那么它就是按空格啊,那两个单词之间有空格,那它就拆成两个单词了啊, 当然它的结果从数据类型上来说是一个列表,列表当中每一个元素就应该是单词。哎,这是我这行代码的作用。那接下来呢,既然它已经是一个列表了,那么我们很 简单的就可以通过 l e n 这个函数来统计这个列表的元素个数啊,那它也就是说我这个文件当中单词的个数了啊,好,那最后呢,我们来打印输出一下,那就是呃文件什么什么有多少个单词? 那在这呢,这个 pass 就是 我们前面这个 pass 对 象啊,那在这,因为呃它会被当成呃一个字串去处理,那它呢,这就会转化成它准备操作的那个文件名称,也就是 a a a 点 t s t 后边有多少个单词?那这个变量呢?啊,那就是我们倒数第二行这个普通的这么一个变量啊。 来,那我们来看一下这个执行的结果,在这呢,我们可以看到执行之后啊,正常的这个显示信息就是文件,然后呢 a a a 点 t x t 有 啊,多少个单词? 好,那这是执行正常的这个情况,那接下来呢,我们来演示错误的情况,以及对错误的处理 啊,那我们来看啊,那在这呢,我把刚才这个企图操作 a a a 改成操作 b b b 点 t x t, 实际上呢,我电脑当中并没有这个文件,所以他就会报错,那我们可以看到下边这一大堆的报错信息,那这个呢,其实就不优雅啊,我们看到很慌,实际上呢,我们这个报错之后呢,程序也就结束掉啊,或者说被中断了啊, 那我们接下来来处理它,处理它呢,我们这样去做啊,把从读取开始的这个代码啊,把它单独提出来,然后呢我们加上一个 try, 好, 我要尝试执行下边的这些代码啊。啊,那如果出现意外,那就是 system 啊,出现什么意外呢?如果出现了一个文件未找到的意外。好,那我就简单的打一个报错信息,那就是文件什么什么不存在,哎,那这样呢,它就不会显示那一大堆的报错信息了啊,它出现问题只会显示这简单的一句话 啊,其实呢,显示完这句话呢,它也让我的这个程序呢,不是说以报错的形式结束,而是说顺利的往下执行啊。 好,那在这呢,我们来看一下这个执行结果。呃,我们可以看到,哎,这是我在代码当中加了一个 try 和 accept 这些代码,然后呢,执行的时候,虽然呢这个文件不存在,这个时候它就没有报一大堆的报错信息, 只有我设计好的那一句话啊,文件 bbb 点 txt 不 存在。哎,这就是,呃,异常处理,让报错信息更优雅的显示啊。 来,那实际上呢,在我们蟆蜓书当中呢,它不是这样去写的啊,它把这个读取文件内容这一行放在 try 里边,剩下的三行,哎,它挪了下来,然后呢放在了 else 里边啊,这样去做呢,我觉得语义更清晰, 就是说呢,我 try 里边就是我尝试读取这个文件,那读取成功了,我执行 else 里边的代码读取不成功,发生了错误,我执行 accept, 呃,这个异常处理里边的这个代码啊,那这个结构呢,我觉得这样也很清晰啊。 好,那接下来我们再进一步啊,去封装函数啊,为什么呢?因为我们除了读 b b b, 读取 a a a, 我 们读取任何一个文件都可能会报错,那么都会需要一个错误处理,所以那我们就把这个 try, accept else 这段代码提出来,我们准备把它变成一个函数的形式,变成函数形式,我就可以呃很多次的重复地去调用它了啊, 好,那这个代码呢?实际上我们要操作的是这个 pass 对 象,对吧?好,那所以呢,我封装函数,我首先 d, e, f, 后边跟的是函数名称,函数名称叫 count 下划线 was。 哎,在参数列表里边,准确的说是行餐里边我就写了一个 pass, 也就是说将来你在调用这个函数的时候,你应该给我传一个参数, 这个参数呢是由 pass 类实力化对象出来的啊。好,那除此之外呢,就没有了这个函数就封装好了,我们调用的时候该传参,传参就行。那比如说现在我准备用这个函数 来去呃统计呃这个某个文件当中的单词个数啊,怎么办啊?就是接下来我要使用这个函数了啊。好,那在这我还是通过 pass 类啊,得到一个 pass 实力对象企图操作 a a 点 t x t 这个时候蓝色的这个 pass, 注意它是一个呃实实际的这个这个变量,它和函数里边那个 pass 是 两个不同的 pass 啊。 呃,来,接着。那接下来呢,我调用这个函数,并且把这个蓝色的 pass 传进去,这个时候这个蓝色的 pass 它叫时残, 然后呢时餐会复制给行餐,也就是定义函数的时候那个黑字 pass, 那 那个是行餐啊,这其实发生了一个时餐复制给行餐啊,当然这是一个基础的概念。好,那它的执行结果呢?我就不演示了啊,那我这只是说我们把它封装成函数,我们就以后呃处理某一个文件就可以这样去做了。 那再进一步,接下来如果说我们多个文件如何去处理啊?我想一下子就统计一批文件啊,这一批文件当中的单词个数啊,好,那我们来看啊。哎,我先把这个函数呢先放到右上角,那假如说或者说假设呢?哎,我有 准备了三个文件啊,这个是一个列表的形式, a a a 点 t x t b b 点 t x c c c 点 t x t。 啊,好,那当然, b b b 点 t x t 这个文件确实没有啊,我为的就是体现这个异常嘛,所以它没有啊。 好,那接下来怎么办呢?接下来我们就通过一个 for in 啊,去啊,便利它,或者说依次地去处理它 啊,那这个赋映呢,也可以说是循环啊,每一次循环,那我其实都是针对这个 f 下行线内幕去操作的。哎,你比如说循环里边,首先我用 pass 这个类,然后呢?呃,实力化对象 啊,那第一次循环的时候,其实这个 f 下行线内幕就是 a a a 点 t x t 啊,那也就是说我准备操作 a a a 点 t x t, 那 紧接着那调用那个我们封装好的函数,就是我准备统计 a a a 点 t x t 这个文件里边的单词数量。那第二次循环呢?啊,那我们就是针对 bbb 点 txt, 企图对 bbb 点 txt 呢进行一个单词数的统计, 但是 bbb 这个文件不存在。哎,不存在也没有关系,因为我们这个函数里边,它是一个异常处理的这么一个语法,这么一个机制, 它会打印一个文件,不存在,但是呢啊,它不会让我们这个呃程序代码直接就报错就结束了啊,它会继续的循环。所以呢啊,下一次循环,那就应该是企图去读取 c c c 点 txt 这个文件了啊,那当然, c c c 点 txt 这个文件是有的啊。 好,那我们看一下这个执行结果,那在这呢,哎,我们可以看,哎,这就是执行结果,那我们,呃,非常明确的就看到首先它打印了出来 a, a, a 点 t, x t 有 多少个单词,然后它打印 b, b, b 点 t, x, t 不 存在,如果我们没有异常这种机制的话,那 b、 b、 b 不 存在,那整个程序就结束啊,就就就 就死掉了,对吧?那也就是说他不会再统计 c, c、 c 了,但是我们现在看到这个结果,正是因为我们使用了异常处理这种机制啊。然后呢,我只是打印出来文件 b, b、 b 点 t, x, t 不 存在,接着继续执行,所以有了结果,说文件 c, c, c 点 t, x, t 有 多少多少个单词,哎, 正是因为第三行的信息证明了我这个程序并没有被中断啊。好,那以上呢,就是我这节视频所分享的全部内容 呃,哎,在这里看一下,因为透彻,所以简单,我是讲师井水,那这节视频呢,大概是蟒蛇书的一百八十页左右的内容啊啊,那如果你有什么疑问或者说有自己的观点,欢迎在评论区给我留言啊,当然更欢迎你关注我的这个账号,那么呢,让我们下个视频见。

没有循环,循环之后我们来看一个小案例,假如我现在要实现一个 qq 登录的功能,需要让用户输入账号密码,然后用代码验证账号密码是否正确, 什么时间呢?起到要验证账号密码,我们后台首先是不是得先存有正确的账号密码,所以我们先把正确的账号密码存起来,六十二点等于一三零三五四四五零零二四五二等于一二三四五六。注意这里的账号密码我们直接写成周不转的形式, 因为后面我们用音部的接收用户输入,音部的存在也是支付转型时,这样就可以直接做比较,如果你这里存了整形,后面我们还要多处理一部好 正确的账号密码。存好之后,我们下一步就要开始接受用户的输入了,对吧? input, 请输入你的账号, 然后复制给英普的优生,连接着是密码,英普的 pass 玩的。先输入你的密码,拿到用户输入的 账号密码之后,接下来我们就应该进行判断了,判断 input user name 是不是等于我们存在有事儿呢?并且 input password 是不是等于我们存在 password, 如果条件成立就打印登录成功, s 就打印用户名或密码错误,现在这个程序我们就写完了,所以说编程其实很简单,就是把我们脑子里的想法步骤用编程语言表达出来就行了。现在我们来运行一下, 我输入一三零三五四四五零零一二三四五六,就打印了登录成功,但是如果我输入错了呢?你来试试,我就随便输了,就打印了用户名或密码错误,然后程序就结束了。但是我们真正在登录 qq 的时候,如果出现了账号密码错误, 是不是会让我们再输入一遍,然后再判断呀?那我直接复制一遍不就行了?你想要多少遍,我就复制多少遍。但是这样会有两个问题,第一就是程序运行之后,如果我第一遍就 输入对了,打印了,登录成功,然后接着仔细找后面的代码,你又让我输入账号密码,这就不合理了吧?或者说你复制了三遍,我三遍都输错了,是不是还得让我继续输入呀?但是你代码到这却结束了,这是第一个问题。然后第二个问题, 现在我们会发现这样会有很多的重复代码,现在我们要知道,如果你写的代码里有很多重复的代码,这是一件非常非常 low 的事情,千万不要这样去干。同时如果我的条件判断有一点改动,那你是不是要把所有重复的地方都要改掉? 我们只复制了三份,很好,但是如果你有十个或者一百个地方都用到了这段重复代码,你难道也要一个个去改吗?这就不合理了吧。所以我们写程序一定要尽量避免写重复的代码。 针对解决一顿代码重复运行,我们上节课是不是已经学过了 vr 循环,直接在这顿代码前面写一个 vr 循环,借这些条件,条件是什么不重要,重要的是你要让下面这个代码 运行多少次。如果我直接写个处在这,然后把要收进的蛋白选中,按特百减就全部收进好了, 现在是不是就变成了死循环了?虽然重复代码的问题解决了,但是还是不能解决,输入正确之后就停止,这样写的话,不管你账号密码输入正确还是错误,都会继续让你输入。那么这个问题怎么解决呢?我们下节课再来讲退出未要循环的两种方式。

同学们好,欢迎来到阿来老师的 passion 课堂,从这一节开始呢,我们来学习三大结构当中的循环结构, 在前面的课程中,咱们曾介绍过,循环呢是按照一定的条件重复的去做一件事情,哎,当条件不成立的时候呢,就去结束循环。 这小节课我们就来学一下具体的如何去实现我们的循环。在拍摄中循环呢可以分为两大类,一类是条件循环,还有一类叫便利循环。我们先看条件循环, 那在这里边呢,有一个流程图,我们看条件循环他的执行过程, 执行完前面的语句块以后,我们进入条件循环语句,那么首先判断条件, 条件如果成立的话呢,我们就去执行循环体,循环体就是我们条件成立的这些语句块, 他可能是一条语句,也可能是多条语句,那整个的循环体执行完成以后呢?哎,我们看流程线,继续去判断我们的条件, 如果条件依然成立,那么我们又去执行循环体,循环体执行完,哎,又去判断条件,只要条件成立,那么我们这个循环体呢,就会重复的一直的去执行,直到我们的条件不成立了,我们看就退出 了循环,然后执行后续的语句,快,这个就是我们条件循环他的一个执行流程,下边我们来看他的语法格式, 条件循环他用到的关键字是 well, well, 英语意思就是当什么什么的时候,是吧?哎,我们看当条件成立的时候,哎,所以我们看 well, 后边呢跟着一个条件语句, 条件语句后面是一个冒号,不能省略,然后在冒号下边这一行注意有缩进,缩进以后就代表这里的语句快,是我们这个 well, 循环的他的子语句,我们也管这里的 区块就叫做循环体,那循环体执行完以后呢,会继续判断条件,只要条件成立,我们就会一直执行这个循环体,那直到我们这个条件不成立了,那么我们就哎结束了,整个的啊外偶循环。 举一个例子,通过这个例子我们来看一下如何实现我们的条件循环。首先第一行,我们看 a 等于一, a 是什么?我们管它叫做循环控制变量,也叫计数器, 他决定了我这个循环控制变量的初始值,那我们这里看,这里是一,继续 well, 条件 a 小于五。冒号下边进入循环体,循环体里边我们输 突出 a 的值,并且改变了我们循环控制变量的值,让他怎么样呢? a 加等于一,我们说加等于是自增, a 的值 自增一,那么 a 的初始值呢?是一,自增一以后呢? a 的值呢?就是二了。 执行完这条语句以后,循环体完了,我们继续去判断条件,而 a 小于五,那现在 a 的值是二,我们看二小于五依然成立,又输出 a 的值,哎,这时候输出的 a 呢就是二,然后 a 又自增, a 又变成三, 继续判断条件,三小于五依然成立,那我们输出这个三, a 又自增成了四,四小 小于五依然成立。好,我们继续输出这个四,然后我们又自增,变成了五,这时候我们看 a 变成五以后,再去判断条件, a 小于五就不成立了, 不成立。那么下边这个循环题就不再执行了,整个这个循环呢就结束了,那通过这个例子我们看他实际上输出的是一二三四 这四个数字,那在这里咱们思考 a 起到的是什么作用?哎,是不是控制我循环的次数,所以我管他叫循环控制变量,也叫计数器, 我们在循环之前需要给我们的循环控制变量一个初始的值,然后我们 yo 循环后边这个条件 一定要保证,哎,我这个条件是能够结束的,如果这个条件一直成立的话,那么我这个循环体就会一直重复,一直重复就没有退出的时候了,那这种循环呢?就叫死循环了。 最后我们看在循环体里边,我们还有一条依据是非常重要的,就是我们一定要改变这个循环控制变量的值,让他有改变, 如果我们不去改变他的话,那么导致的就是我们这个循环条件会一直成立,所以我们需要改变他的值,让我们的循环条件能够有退出的时候。比方说这个例子,我想循环四次,那我从一 初始值是一,结束值小于五,那如果我想循环五次,那我可以写小于 等于五,那么他就从初始值是一,然后呢?哎,二三四五到六的时候呢就结束了,那我想循环一百次呢,那么我就可以初始值是一,然后结束的值是小于等于 一百,那这样呢?我这个循环他就会执行一百次。老师在这里再总结一下咱们这个 yo 循环需要注意的一些要点。第一个定义技术器的初始值, 也就是我们循环控制变量他有一个初始值。第二个循环条件要保证啊,要在一定条件下能够退出循环,不能做成死循环,这个条件一定要确定好 我们要循环多少次。然后第三个循环题里面不要忘记去修改技术器的值,也就是这一条渔具啊,我们这个技术器一定要发生变化,这三点也是我们的循环三要素。下边我们把这段代码实现一下, 想着我们的循环三要素,首先先要有循环控制变量,也就是计时器,我们从一开始, 接着我们来写我们的循环 well, 循环条件我要循环多少次?比方说我要循环四次,我就写小于五, 然后冒号不能省略。下边循环体一定要有缩进循环的内容呢,就是要输出我们 这个循环控制变量 a, 然后注意我们循环题里边一定要修改我们循环控制变量的值,让循环控制变量自增一。我们也可以这样写, a 等于 a 加一, 跟 a 加等于一是一个意思。好,我们在循环体外边呢,再写一个输出,写一个 ok, 好,我们运行一下这个程序, 我们看分别输出了一二三四,循环结束以后输出 ok, 理解了我们的循环三要素以后呢,我们一起来做一个案例,用 well 语句实现求一到一百的累加的和。 首先理解题目,他是求一到一百的累加和,也就是一加二加三加四加五,一直加到一百,那在这里我们先要想一下我们的计数器他的初始值是多少,哎,从一开始到一百结束。好,那么初始值应该是一, 我们的循环条件呢?应该是小于等于一百,哎,因为一百是包含在内的,这是我们的循环控制变量和条件, 然后在循环题里边,我们也要让我们的循环控制变量自增一,这样呢我们就可以取到一到一百的值了。我们来看一下,我们在这个基础上去修改一下来看初始值是一, 然后呢我们的结束是到一百,哎,通过这两行我就知道了,我从一开始到一百结束,那么我们在这个循环题里边,这个循环控制变量 a 一定要自增一, 那这样呢,我就可以取到从一到一百的每一个值了,就是用变量 a 来表示,我们看第一次的时候呢, a 等于一,我们会把一输出来,然后 a 加一,以后第二次循环,哎就输出于二,然后第三次循环呢, a 又加一, a 是三,我们看运行一下, 在这里我们就得到了一到一百的数字,得到数字以后,下边我们要求他的和,求和的时候呢,我们需要把他的和放到一个变量里边, 我们取个名字叫萨姆零,比如说老师叫萨姆,可不可以呢?可以,但是呢萨姆是我们拍森的一个求和的函数,我们尽量不要与他冲突。好,然后来看一下他的初始值呢,应该是几呢? 咱们可以这样想一下,哎,我们找了一个啊空盒子,在盒子里边把我们的值呢累加到这里边来,那他的初始值呢?是空的,我们是零,那我们循环一次呢,就需要将我们这个啊循环控制变量 累加到我们这个盒子里,那我们可以这样写, some 零等于 some 零加加谁呢?加 a, 那咱们来看,是不是每次我们这个 a 都会累加到 我们这个萨姆零这个变量上边,我们一起来分析一下,在这里有两个变量,一个是 a, 是我们的循环控制变量,一个是萨姆零哎是我们的结果变量, 那最开始的时候呢, a 的值是一,然后下面零的值呢是零, 然后在循环题里边,我们看要执行哎这一句, sam 零等于 sam 零加 a, 那么我们就是哎零加一,那么 sam 零的值呢?就是一了。在第一次循环以后,哎 sam 零的值变成了一, 然后紧接着 a 的值就变成了二,然后继续判断二小于等于一百成立, 然后呢我们又开始啊输出,然后在这里又累加,又加几了呢?萨姆零加 a, 那么萨姆零现在是一,一加二,那这时候呢,他就变成了三,而 a 的值呢也是三, 接着再去判断执行,又去累加,这时候上不灵加 a 就是三加三了,就是哎六,然后 a 呢变成了四,再往下依次看, 四小于等于一百,依然成立,然后又去累加,然后呢就是用六加四是十,而 a 呢就要变成 a 加一以后又变成了五, 等等等等。咱们就写这么多,咱们看整个循环执行完以后, a 的值会从一开始一直到一百, 而 sam 零它的值呢就会是从它的初始值零开始,每次将我们 a 的值累加上来,那循环结束完以后呢,它会累加到一百, 那么我们看下不灵是不是就是哎一加二加三,一直加到哎一百的值累加完成, 最后我们输出萨姆铃就可以了。好,我们改一下,我们中间呢不再输出这个变量了,然后最后呢,我们把萨姆铃输出一下,我们运行一下这个程序, 我们看输出结果是五零,五零,也就是从一加到一百,他的值是五零五零。 那学会了这个累加以后,咱们可以想一下,我可以求一个累积,也就是累成,那么我们也可以。哎,在这里注意我们的初始值,比如说我想求一到十之间的累积,那么我们想一下初始值应该是几呀? 哎,是一,然后结数值应该是小于等于十。那还有一个我们结果的出示值应该是什么呢?他的出示值是零,可以吗? 啊?累积的话是相乘啊,零乘以任何数都是零了,所以我们出示值应该是一,然后在这里萨姆零等于萨姆零乘以 a, 因为我们要累乘。这样呢,哎,我们就可以把 aa 这个循环控制变量,他的值呢?每次累乘到 我们这个啊萨姆林里边,这时候我们看结果,我们看从一乘二乘三乘四,一直乘到十,他的结果是这么大一个数,三百六十二万八千八百。 呃,这一节课呢,我们就学习了我们的循环结构中的条件循环,也叫 well, 循环。然后重点记住我们循环的三要素,循环控制变量出始化,循环条件要能够结束退出 循环体中,要能修改我们循环控制变量的值。然后我们的案例呢,也做了两个,咱们可以自己去实现一下。好,这节课呢,我们就上到这里,拜拜。

这节我们讲一下拍摄循环结构中的条件循环,也就是蛙要循环。 问题描述,我国的最高山峰是珠穆朗玛峰,八八四八米, 现在有一张足够大的纸张,厚度为零点零一米,请问折叠多少次就可以保证厚度不低于珠穆朗玛峰的高度?我们先分析一下问题,零点零一米的纸张折叠一次厚度为原来的两倍, 第一次折叠后厚度为零点零二米,第二次折叠后厚度为零点零四米,第三次折叠后厚度为零点零八米。那么折叠多少字后厚度不小于,也就是 话语或等于八千八百四十八米呢?接下来我们先讲一下条件循环,也就是蛙游循环。条件循环一般用于循环次数未知的情况,他的语法是蛙游,条件表达是冒号, 下面是语句或语句组他执行的流程。首先判断条件表达上的值, 如果条件表达是成立,也就是其职为真,实则执行代码会中的语句。当执行完毕后再回来重新判断条件表达式的值是否为真, 若认为真,则继续重新执行代码快,如此循环,直到条件表达式的值为假,也就是不成立的时候 才终止循环。下面我们看一下啊拍摄程序。首先呢,我们自定义了一个初始的厚度给变量嗨,然后定义变量 cond, 用来记录折叠次数。 接下来就是蛙游循环,他的关系表达是是嘿,小于八千八百四十八, 也就是说当我们的厚度小于八千八百四十八的时候呢,就来折叠,每次折叠呢折叠次数加一次,然后呢折叠的厚度变为原来的两倍, 一直到害大于等于八千八百四十八的时候呢,退出循环,然后呢输出折叠次数,我们运行后呢,结果为 二十次,我们把每次折叠后的厚度输出一下,在十九次折叠后,他的厚度呢为五千两百四十二点八八米,这时候呢仍然小于八八四八米, 我们再折第一次,到第二十次的时候呢,就超过了八千八百四十八米,随之退出循环。 一厘米后的纸仅仅折叠二十次就达到了珠峰的高度,是不是有点不可思议呢?这就是指数级生长的威力。

大家好呀,我是小黄人,今天咱们来学习 python while 循环, while 循环它这个编程啊,与英语的区别啊, while 呢?在英语中啊,它意为当或是作为的意思应用于啊,这样, 我在这里我插播一条啊,我已经初一了,也就是七年级了,在我们的单词表中就有 y 这个单词。嗯,如果现在还是小学的一些同学,或者已经是大人的一些。呃,粉丝,行吧,你们应该。嗯 知道这个单词,这个 y 呢,和这个 y 是 差不多的啊,他是这样子运用的啊, why 呢?它在编程里面,它是无限循环的意思应用于这样子的啊,其实是 why 什么什么什么,比如说条件判断处或者 false, 然后再加上一个语句块, 如果你想反悔,让它中途停下,可以使用 break, 可以 将其加入任意一个语句块下面。但是这里建议使用 if 它,让它判断条件是否真的满足,然后再执行 实践,实践才能出真知。好,我们现在的目的,现在我们要做一个事情,就是, 呃,让他一直输出,是从零一直输出到用户输的数,这是零一二三四五六七八九,然后一直一直一直到用户输的数。使用一个 number 变量,只要让它表保存一下,整数类型的, 请整数类型的一个输入,请输入一个数字。 好,尽量要输入五点数类型,然后进入循环,输入完之后进入循环啊, 好,我们来,我们来创造一个变量,叫 times, times 等于零啊, 然后呢,让 times 重置,就是把它复制为它本原来的那个数加一,在它之前,我们输出 times。 好,如果啊,这个 times 等于用户输入的 number 变量,如果它们相等了,那就 break, 然后呢?最终输出程序执行完毕。好,非常简单,运行, 请输入一个数字。输入多少呢?输入二零二六, 好,还是跟 if 差不多的?我发你有没有发现还是跟 if 差不多啊?输入到二零二五就没有了,是吧? 这就是因为 python, 它还是这个道理,它总是,呃,从零开始。所以说呢,总会缺少一个数字。 我们也可以在这里再加一个 print time 四,因为我们缺少了一次嘛,我们在这补一次,我们再看看。好好, 我们还终于还是弄到二零二六了,对吧?来,大家来找一下自己的出生年份哈。 好,这就是我们今天所运用的内容。

同学们好,欢迎来到阿莲老师的 passion 课堂,这节课我们继续来学习循环结构。上一节课我们说 passion 的循环结构分为两大类, 一个是条件循环,也是 yo 循环,还有一个就是 for 循环,便利循环。那这一小节我们就来学习便利循环。本来拍生中有一个 yo 循环,其实所有的循环都可以完成了,那为什么又有了 for 循环呢? 在这里老师需要给大家提到一个序列的概念,序列,他指的是一块可存放多个值的连续的内存空间, 那这些值呢?按一定的顺序排列,可以通过每个值所在的位置的编号去 问他们。在拍摄中还包含有字符串列表、原组字典集合等等的序列类型,这些序列类型我们在后边的课程中都会讲到, 那要便利我们序列中的值,获取序列中的各个元素,我们就可以通过便利循环,也就是放循环来实现 便利循环不仅可以便利序列中的元素,他对所有的可迭代对象都是可以进行便利的。 我们可以这样理解,便利循环是将可迭代对象从迭代器里面按照一定的规则取出来,然后进行相关操作的一个过程。 下面我们来看便利循环他的流程图前需语句块执行完成以后,我们开始对可迭代对象进行便利。 首先我们从可迭代对象中提取他的第一个元素,然后执行循环体。循环体执行完成以后呢,从可迭代对象中提取下一个元素,然后再执行循环体, 那一直去提取元素,执行循环体,那直到什么情况呢?直到我这个序列中所有的元素都已经提取完了,没有元素了,那么我这个循环呢,就结束了,然后执行后续的语句,快, 从这里我们可以看到它跟 y o 循环有很大的区别, y o 循环,它的循环次数呢, 是有循环控制变量来解决的,需要我们设置循环控制变量的初始值,然后我们在循环体中还要去修改循环控制变量,另外循环控制条件也要设置好。 而我们的便利循环呢,是不需要我们再去设置循环控制变量了,他的循环次数是由我们可迭代对象中的元素的个数来决定的。下边我们来看一下便利循环他的语法格式。 便利循环通过 for in 来实现,首先先写一个关键字, for, for, 后边呢跟着一个变量,通过这个变量来代表我可迭代对象里边的每一个元素。 in 后边呢是我们的可迭代对象,我对哪 哪个可决的对象进行便利,我这里就把它写下来,然后冒号不能缺省,冒号,下边呢,这里也有索进,后边就是我们的循环体。 在这里老师举了一个例子,我们说哎,字符串呢,它属于一种序列,因为它是由多个字符组成的,那我们可以对字符串进行便利,那我们是这样写, four i 是我们的变量,变量名呢,只要符合我们的变量名命名规则就可以。 in, 然后我们的字符串猫号,然后我们循环题里边只有一句话,就是输出爱,那我们看它的执行过程。我们在第一次循环的时候呢,会取出序列 中的第一个字符 p, 将它复制给我们的变量 i, 然后循环题里边输出 i 的值,输出完以后,我们同样回到这里取序列中的第二个元素,然后这时候呢,这个 i 呢,它就是 y 了, 然后我们又输出无爱的值,接着我们取后边的下一个元素,哎 t, 哎,将 t 复制给这个 i, 然后又输出爱的值,输出 t, 哎,依次便利,将我们序列中的每一个元素都便利完以后,那么我们这个循环呢,就结束了, 那这个循环的作用呢?就是将我们字符串中的每一个字符都单独输出出来,咱们可以实践一下,我们先写上便利循环的关键字 for, 然后定一个变量,我们用 i 来表示一,然后我们后边跟着一个序列,注意在这个否循环后边一定是一个可迭代的对象,可以是序列,也可以是其他的可迭代对象。那这里老师写一个字符串,序列 好,写完以后冒号不能省略,然后回车,这里有了缩进,然后循环体呢,我们就输出一下 i 的值, 但每一次循环 i 的值是不同的,它是我们序列中的每一个元素。好,我们运行看一下,好,我们看将我们字符串中的每一个字符进行了输出, 也就是我们便利了我们 s 符串的每一个字符。那现在老师如果有这样一个题目,我们从键盘输入一个字符串,比方说是 s, 它呢是从键盘输入的 input 输入一个字符串,这时候呢,老师想让你便利一下我们输入的字符串,将字符串中所有的数字输出出来,那咱们怎么写呢?哎,这时候呢,我们就需要进行一下判断, if 爱怎么样?我们说数字呢是从零到九,如果爱大于等于谁呢?零,并且爱 小于等于九,那咱们看这个条件如果满足的话,那么我们这个爱他是不是就是零到九之间的这个数字字符,然后我们就把它怎么样呢?哎,输出出来, 输出我们这个,哎,那其他情况呢?咱们就不进行输出了,不做任何操作就可以了。那我们运行看一下,首先我们需要输入啊,字符随意打啊,随意打,有数字,有字符,还有符号标点等等的啊,然后我们打回车, 我们看他就将我们刚才输入的信息中所有的数字进行了输出。哎,你说老师我想让他在一行输出可以吗?哎,当然可以了,这个咱们需要去看一下咱们前边学到的, 哎,输出的这个函数它里边有一个结束标志,按的,我们让他结束标志呢是空,因为他默认结束标志是换行,所以他输出每一个字符的时候呢都换行了,那我现在是空的话,那么我们在输出的时候看一下结果, 好,咱们看他是不是就输出了我们这里边的所有的数字。 好在这里我们通过一个便利字符串来实践了一下我们的便利否循环, 如果我们想要用否循环来便利数字怎么办呢?在这里老师给大家讲一个润值函数,它并不是一种数据类型,也不是列表,它可以返回一个包 含数字的可迭代对象。我们来一起看一下,润指有三个参数,一个是开始为止,一个是结束为止,还有一个是不长,这三个参数呢都需要是整数。 start 开始位置代表的是我这数字从几开始? stop 代表的是到几结束。 step 呢,指的是我的不长是多少。在这里边 stop 这个参数呢是不可以省略的,是必须要有的。 stop 和 step 是可以省略的。 step 如果省略的话呢,就表示我是从零开始的。 step 如果省略的话呢,就代表我的不长,是一啊,也就是说我的数字 是一个一个的区区。那咱们实践一下,润指生成的是可迭代对象,所以我们可以通过 for 循环对它进行迭代。 for i in。 好,我们下边写润指,在这里我只写一个参数,比方说我写一个十, 那这里就代表了我会获取到十个数字,从零开始到十结束,包含十吗?哎,不包含啊,他一共是十个数字,从零开始我们可以便利一下输出一下爱。 哎,我们这个爱呢就是便利的我这个可迭代对象里边的每一个数字,我们看一下运行 零一二三四五六七八九。哎,这是我们润字里边只有一个参数的时候,那现在我写两个参数,一 逗号十,那这时候呢,就代表从一开始到十结束。那么我们来看一下他输出的是什么? 好,我们看不是从零了,从一开始的一二三四五六七八九到九结束了。 那从这里咱们可以看到,第一个参数是包含在我们的可接待对象里边的,而第二个参数他是不包含在我们的可接待对象里边的,我们管他叫包头布 包围。老师,再举个例子,比方说我第一个参数是十,第二个参数是二十,那么他获得的可值的对象都包含哪些数字呢?哎,对了,是十,十一,十二,十三,十四,十五,十六,十七,十八,十九, 哎,不包含二十啊,好,下边我们说润指还有一个参数叫不长,也就是他的第三个参数默认的不长呢,是一 来我们看在输出的时候呢,我们的每个数字他之间相差一,然后如果我的不长是二的话,我们来看运行一下, 我们看十,十二,十四,十六,十八,那每个数字之间相差的是不是二?哎,比方说五 五,那么我们看他会输出什么?哎,他就会输出一个十和十五。 好,这是我们的啊,润指函数。那老师在这里出一个题目,请输出一百以内所有的基数,我们要怎么写呢?哎,聪明的同学会这样写,一到一百, 然后呢?不长是二,我们看是不是,是不是将所有的基数就输出出来了,那偶数也是一样,二到一百,那就是一百以内所有的偶数就会输出出来。 那老师在这里出一个题目,然后你看一下他输出的是哪些数字,然后呢,如果你知道的话,可以把答案打在评论区这里。 其实呢,我写的是五中指呢,写的是二十五, 然后在这里不长是五,这个润质得到的可叠加的这个对象,它里边都包含哪些元素呢?如果知道的话可以打在评论区。好,那这一小节我们就上到这里,拜拜。

刘木陪你每天进步一点点!哈喽哈喽,宝宝们欢迎来到刘木老师的拍森小课堂。今天给大家带来的是负循环。在前面的视频中,我们已经学会了如何使用列表和字典来保存数据,但如果现在我们需要把里面的数据全部打印出来,对于列表 虽然可以借助,所以逐个取值,但要写很长的代码也很麻烦,而对于字典,操作起来就更不方便了,这时候循环就能派上用场。 循环其实就是重复执行某段操作,就像闹钟每天到点都会重复响起,火车每天按照固定的时间重复发车一样。当我们想对列表或字典中的每一项都执行相同的操作时, f 循环就是一个神器, 它的基本语法是 f 空格循环变量,空格音可叠带对象,后面加上英文冒号,换行缩进后写下循环体代码。其中 f 和音 是固定关键字,可叠代对象指的是能够存储多个数据的数据类型。比如字母串引号内可以包含多个字母,列表中括号里可以存放多个数据,字典大括号里可以存储多个键值队。循环变量的名称可以自定义,只要符合变量名命名规则即可,比如 a i name 等。如果忘了命名规则,可以回顾第六集的内容。负循环会依次从可迭代对象中取出每一个数据,赋值给循环变量,直到所有的数据取完,那么循环结束。举个例子,用字母串 python 参与循环,循环变量会依次得到 t、 y、 t、 h、 o、 n 这六个字。服用列表参与循环,循环变量会依次保存电脑、键盘、耳机、手机这四个数据。需要注意的是, 如果用字典参与循环,循环变量只能拿到每一个键,而不是键值。对,如果你想获取对应的值,可以通过字典中括号键的方法取得。比如字典叫 gift price, 中括号 name 就是对应的价格。循环体里写的是我们想要重复执行的代码。负循环,每取出一个数据,就会执行一次循环体。 例如使用列表参与循环时,第一次循环循环变量 name 保存的是电脑,那么输出结果就是电脑。第二次循环 循环变量 name 保存的是键盘,输出结果就是键盘。第三次循环循环变量 name 保存的是耳机,输出结果就是耳机。第四次循环循环变量 name 保存的是手机,输出结果就是手机。这里 我们循环体的内容就是打印循环变量,你也可以换成其他不一样的代码,不一定要和循环变量相关。比如你可以在循环体里写 print, 偷偷学 python 经验。所有人如果可迭代对象有六个数据,这行代码就会执行六遍。有四个数据,那么他就执行四遍。总结一下,负循环的作用就是帮我们逐个取出可迭代对象当中的数据, 并针对每个数据执行相应的代码。常见的可迭代对象包含字串、列表、字典。但 要注意,如果此时你只想简单的让某段代码执行十次或一百次,那么目前的负循环还不太方便,因为数值本身 并不是可叠代对象,如果你试图用数字十进行负循环,会导致错误。别急,下一期我们将介绍负循环的好搭档, run 函数。 run 函数可以和负循环进行组合计,让我们轻松实现数值参与循环,轻松控制循环次数,我们下期见。

上一个视频我们介绍了两个循环否和否,那我们现在有个问题,如果要是想循环到一半的时候退出循环,或者说循环到 某一个阶段以后,想开始下一轮的循环,而不再继续循环,这个时候应该怎么做呢?我们就用 break 和 condiment 这两个关节子去实现, 我们直接看一下代码,这个失利呢,我们会去用负循环去便利一到十这十个数字,如果要是这个序列中有了我们这个目标数字七, 这个时候我们就直接终止循环,不再继续便利了。我们可以看一下结果, 我们可以看到它变力了,一二三四五六七,对吧?它并没有变力,后边的八九十 循环提前终止了,这就是我们 break 的 用法,先结束循环,我们如果把它改成三,我们再试一下, 这一次它只循环到了一二三,后边的四五六七八九十都没了,这就是我们 break 的 用途。我们再来看一下 continue, 现在有一到十十个数字,我们要将里边的基数打印出来,那我们就直接让这十个数字分别和二,然后去取余,如果要是余数为零,也就是能被整除, 它就不是我们想要的数字。我们直接进行下一轮循环,如果它不能被二整除,那它就是我们想要的数字基数,这个时候就把它打印出来,就继续后边的循环内容我们可以看一下,结果 我们看到打印出来是一三五七九,对啊好,我们可以看一下 break, 中指当前循环直接跳出循环体,它对 for 和 will 都是适用的, 跳出以后不是这样,后边的循环就不会再执行,如果要是这个循环有 else 子句的话, else 子句也不会去执行了。我们可以再补充一点内容,我们给这个 for 循环加一个 else 语句, 这是 else, 我 们可以看一下, 我们是通过 brick 结束的,通过 brick 结束以后,这个时候并没有打印出这是 else 这一条语句,那我们如果要是 改成十五三十一,改成三十一,这个时候循环会便利结束,它会正常结束,不是通过这个 break 结束的。我们再看一下运行的结果,我们可以看到这个时候 else 语句会生效,也就说循环的完整结束 不是通过 break 结束的,这个时候 else 语句也是会生效的。这一点需要注意一下, content 是 立即跳过当前循环的剩余部分,直接进入下一轮循环,不再执行 content 后边的语句。滚动循环。 这个例子我们看一下 rate 五就是零一二三四,如果 i 等于三的话,直接 break, 那 也就是说它只能打印零一二三 三也打印不到,因为三已经 brick 了,所以只能打印零一二,然后摁的摁的是一个空空格,所以说它用的是空格,然后去间隔的。 然后我们再看一下这个 printer 是 在这个 else 里边的,因为它是 brick 出来的,所以说 printer 是 不会去执行的,那就选择 c 零一二。好,我们就到这散会。