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

这个系列会在一小时内让你的派算入门。这是第七课。下面咱们来讲循环语句 one。 如果咱们想打印数字一到五,一个糟糕的方法是这样写, print 一,然后 print 二, print 三, print 四,然后 print 五。 为什么?这是一个糟糕的方法,如果咱们想打印数字一到一百万怎么办?难道要重复写一百万次 print? 这就是咱们使用网循环的原因。好,咱们声明一个变量,并将其设置为咱们的初始数字。假设亦。然后咱们输入 y。 在这里咱们输入一个条件。现在咱们可以再次使用咱们的比较运算符。 假设小于五,小于或等于五。只要这个条件为真,那么咱们 在 well 快内编写的代码将被执行。现在在这里咱们输入一个冒号,然后按 enter 键。现在咱们在这个快中有一个代码快,咱们可以打页按。 然后咱们需要将加一。如果你不这样做,那变量里就永远是一,并且该代码快将无限期地执行,他永远不会终止。咱们的程序 将不停运行,直到内存耗尽。现在在第一次迭代中,五 i 是一小于五。现在拍散将执行这段代码。它将在终端上打印一,然后还变成二,然后空键一。回到这里。 现在 python 评估这个条件二小于或等于五条件为真。 python 将在第二次迭代中再次执。 咱们将在终端上看到两个数,然后按将变成三个。现在这将继续,直到这个条件不再为真。 好,让咱们运行这个程序。现在咱们看到数字一到五,这就是外循环的美妙之处。我可以轻松地将五更改为一千。 顺便说一句,我使用下划线分隔这三个数字,这使我的数字更可读。咱们不必添加这个,但他咱们的代码更具可读性。现在让咱们运行程序。现在咱们看到数字一到一千。这笔一千行代码,每行 打印一个数字要容易得多。现在让咱们看一些其他东西。现在我要把它改为十。现在我不想打印爱,而是想打印 个表达式。我要把乘以一个字符串和一个型号。现在你可能会在这里感到困惑,因为之前我告诉过你,在拍伞中,咱们不能将数字连接到字符串,但这里我使用乘法, 这是不同的。咱们可以将数字乘以字符串,这将根据该数字的值重复该字符串。因此,如果而是一,咱们将看到一个星号。如果是五,咱们将看到五个星号。 让我告诉你,当咱们运行这个程序时,咱们会看到三角形,因为在第一次迭代中,而示意在每次迭代中 都会多一个信号,因为 id 增了,这样咱们会看到每行多一个,最后在最后一次迭代中。而事实 咱们在终端上看到十个型号。 现在你已经了解了 python 中的三种类型的数据。咱们有数字,可以是整数或浮点数。咱们有布尔值和字符串。这些就是咱们在 python 中所说的原始或基本类型。其实在 python 中,咱们有一堆复杂类型,这些复杂类型在 构建实际应用程序中非常常用。下面咱们当咱们使用一个结构组织很多同类变量时,会使用列表, 例如数字列表或名称列表。现在咱们声明一个名为 names 的变量, 并将其设置为名称列表。拍散中咱们用方括号来表示列表。现在咱们可以在这个列表中添加一个 或多个对象,比如在列表中添加一堆名字,比如约翰,鲍勃、马什萨姆和玛丽。现在咱们使用逗号分隔这个元素。这些项目好,现在让咱们打印咱们的列表, print 一下, 看起来他的结果与咱们现在编写的方式完全一样。咱们还可以获取此列表中的各个元素。例如,如果咱们想获取此列表中的第一个元素, 在这建入一对方括号,然后在方括号内渐入所引,这个列表中第一个元素的所引为零。好,咱们运行程序能在终端上看到战。 其实在拍散中咱们也可以使用副索野, 在其他编程语言 言中基本没有这个功能。如果零代表这个列表中的第一个元素, 那么复数一代表什么?它代表这个列表中的最后一个元素。让咱们验证一下咱们运行程序。马列 复数二就代表元素,从列表末尾开始。第二个元素, 现在让咱们运行程序。好,然后咱们还可以更改。给定锁引处的对象 不应该用 h 拼写,现在咱们需要重置。如果咱们输入零的名称, 现在咱们将其视为常规变量,因此咱们将其设置为一个新值,将其设置为没有 h 的账。现在让咱们 打印咱们的列表,这是咱们更新后的列表。咱们还可以选择一系列值。例如,假设咱们值 对前三个名称感兴趣,现在在这里咱们输入方括号。在这里咱们需要输入两个所引,一个开始所引和一个结束所引。咱们的开始所引是零,因为咱们想从这里开始。咱们的结束所引将是零。一二加一,好散。 现在咱们添加一个冒号。三、现在 python 将返回从 开始所引到结束所引的所有元素,但不包括结束所引。现在他将例如回,假设咱们犯了两处的元素站。看一下, 这里是前三个名称。顺便说一, 这表达是不会修改咱们的原始列表,它会返回一个新列表。因此在这个 print 语句之后,如果咱们打印咱们的原始列表,您可以看到它没有改变好。这就是咱们在 python 中使用列表的方式。 之前咱们说过, passan 的优点是对象化 编程中的对象有点像现实世界中的对象,比如你的手机,自行车,电视的遥控器等等,他们具有某些功能。如果咱们在此处渐入字符串,然后按点,咱们可以看到拍散中字符串对象 中可用的所有函数或方法。现在列表也是对象,他们同样有一堆用于添加项目或 删除项目的方法。现在咱们来看看。我将声明一个数字列表,一,二,三,四和五。 现在要在此列表的末尾添加一个新元素,咱们可以使用追加方法。因此咱们输入要追加的数字。这里咱们输入六。现在让咱们打印咱们的列表, 这是更新后的列表。如果你想在中间或开头的某个地方插入一个数字,可以使用 insert 方法。如果咱们想查看 insert 方法的参数怎么办? 现在在顶部转到仕途菜单并查看参数信息。查看 mac 计算机上的快捷方式,它是命令和屁。在 window 上,它可能是控制和屁。如果咱们使用此快捷方式,咱们可以看到 此方法期望的值。现在第一个该方法期望的值是一个所引值,并且该值的类型是整数。因此,如果我想在此列表的开头插入一个值,我应该传递零, 作为第一个元素的所引。现在让咱们传递零。现在第二个值突出显示,因此 第二个值是一个对象,它的类型是 t。 这基本上意味着这可以是任何类型。咱们可以传递数字。咱们可以传递布尔值。咱们可以,咱们可以传递列表或任何类型拍散中的对象。 现在我要传递复述一,现在让咱们运行咱们的程序。您可以看到复述一出现在列表的开头。咱们还有一个用于删除项目的方法。现在让咱们调用删除三, 让咱们运行程序三小时了。咱们现在只有一,二,四和五。如果你想删除列表中的所有项目,咱们调用 clear 方法。 clear 这个方法不需要任何值。现在让咱们运行咱们的程序。列表现在是空的了。有时你想知道某些给定的项目是否存在于咱们的列表中。咱们可以使用 in 运算符。现在让咱们删除这一行。这里也不打印列表, 让咱们这样写。 现在这里咱们使用 in 运算符。正在检查数字列表中是否有一。现在这是一个不尔表达式,它返回一个不尔值, 运行一下。现在咱们显然会得到 cheer。 如果咱们搜索此列表中不存在的值, 例如时,咱们会得到 false。 有时你想知道列表中有多少项你可以使用内置的烂函数?现在让咱们打印 land 数字。 nin 是一个内置函数,就像 print 一样。这就是为什么它显示为紫色的原因,它返回列表中元素的数量。好,根据费曼学习法,现在就在评论区写下您刚学到的知识点,以便彻底记住它们。

循环就是重复做事。拍层中的循环语句分为 wil 循环和 for 循环。我们先来讲解一下 wil 循环,这是 wil 循环的格式。 首先判断条件,但他成立时,也就是判断结果为真,那么就执行相应的代码,执行完毕后再次回来判断条件,如果还成立,则再次执行下面的代码。这种循环情况一直持续到条件判断不成立为止。 举个例子, a 等于五,在循环时,如果 a 小于五,则打印一二三,并把 a 加上一,那么我们可以知道,当 a 等于五、六、七、八、九的时候,条件判断都是成立的。所以这个循环一共会进行五次,一二三也就会打印五 五次了。其实我们可以把这里的 a 等于 a 加一减写成为 a 加等于一。 其他上述运算辅同里,比如 a 等于五, b 等于四, a 等于 a 乘以 b, 我们来打印一下 a 的结果,可以知道是二十, 现在我们可以把它简写成为 a 乘等于 b, 打印结果当然也是相同的。 如果你想要五 l 循环一直进行,那在条件判断时给个正直就行了。习惯上我们这样写五 l 一或者五 l q, 那这样的话就会一直答应一二三了。 要关闭的话,点击右上角红色方块就可以了,它可能会显示一个键盘中断提示,这个就表示开发者人为的中断操作。在循环语句中,我们还需要了解两个关键字, continue 和 break。 一个循环内如果出现肯踢牛,那他下方的代码将会被略过,直接返回循环开头重新判断条件。 循环中如果出现 break, 那他下面的代码也会被略过,循环会直接结束。举个例子, a 等于零编写外号,循环如下, 大家可以先暂停一下思考这个程序会答应出什么。 当 a 等于零一二十都会直接遇到 contino, 所以程序会直接返回循环开头的条件判断处。当 a 等于三十就会被打印出来,而 a 等于四十碰到 break, 直接跳出循环 continue 和 break 关键字,当然也可以在 for 循环中使用。我们会在下期视频中讲解 for 循环,那拜拜。

好,同学们,那么这一小节啊,咱们来一个这个循环的应用,咱们用应用的基础之上呢,把咱们这个语法和外务循环,他的这个执行流程呢,来一个更高层次的这么一个理解和体会啊。 那么首先的话呢,老师拿第一个应用啊,第一个应用需求是让我们去计算一到一百以内数字的累加和。那首先啊,同学们一定要建立一个思想,就是我们拿到一个需求,不能上来就写代码,我们第一步应该干什么呀?哎,对,非常好,分析需求, 把这个需求分析明确了,需要我们干什么?然后呢,利用这个分析出来的结果,我们是不是整理一个一二三四这个小步骤,然后接下来我们写代码,按照这个步骤去写,那么思路是不是会更清晰一些啊?对不对?好,那么接下来啊,朋友们,咱们这样回到拍长部里边,咱们写需求,分析 需求,然后分析步骤在实践代码。那接下来啊,跟着老师回到拍唱部里面来,因为老师啊,在拍唱部里边是不是能写字了,对不对?好,那接下来啊,注意老师这里敲一个注视啊。首先我们把这个需求放上来, 那还记不记得需求是什么?哎?一到一百以内数字啊,累加和,对不对?哎,累加和,那这个累加到底是怎么累加呀? 咱们讲讲,如果让你计算一到一百累加怎么累加?是不是就是一加二,再加上三,再加上四,然后一直向下加,一直加到多少就结束,一百是不是就结束了?好,那么加完之后我们为的是干什么呀? 是不是要计算出来一个结果,那计算出来结果用户能看到吗?不能。那么这时候怎么办呢?我们是不是去打印这个结果 给用户是不是就可以了,对吧?哎,这是我们这个完整的需求,那么这个需求拿到这来之后啊,那老师打一个多行注释,咱们本职这个需求啊,去分析一个步骤,那老师来问啊,我是不是要准备 这样的数字,一二三四五六七八九十这样的数字,那让这些数字是不是做加法运算?但是我发现啊,是不是应该一加上二,再加上三,再加上四,这个加法运算是不是要重复执行的?那是不是这里就一定会用到循环呀?对不对? ok 啊,那么所以啊,首先我们步骤当中的第一步应该干什么?是不是准备做加法运算的数据? 那这个数据其实是不是就是一个从一到一百增量为一的这么一个数字啊?对吧?哎,那老师这么标啊,一到一百 且这个增量为一的数字,对不对?好,那么紧跟着第二步要干什么呀?哎,我们第二步啊,是不是将来做加法运算得要输出一个结果,那我们是不是就要想办法去保存这个结果才行? 那所以呢,第二步呢,我们干什么呢?这里啊,我们去准备一个变量,干什么呢?保存将来运算的结果对不对?哎,你算完了把它存起来对不对?好,那么第三步干什么呀?我们是不是就是计算一,加上二,加上三,那这里是不是就是循环 做加法运算是不是就可以了?那第四步是干什么?做完运算干什么?结果是不是就得到了?我是不是要输出给用户?那所以第四步是不是就是打印结果是不是就完成了?对不对? 好,那么当然啊,打印完结果之后啊,咱们还有一步工作要做,第五步干什么呢?特别想想第五步干什么?哎,打印这个结果之后,我得去验证结果他这个正确性呢, 对不对?哎,我得去验证啊。好,那么也就是说啊,我们要做这个累加核,是不是一二三四一共这五步啊,对不对?哎,一二三四五这五步啊,那么接下来我们就从第一步开始, 第一步干什么呀?哎,是不是就是准备数据,对不对?哎,准备数据,那这个数据怎么了?哎,那是不是就给他一个初始值是不是就可以了?那增量什么的怎么算啊?是不是在循环的时候算啊?对吧? 好,那么接下来第二步干什么?准备保存将来结果的变量。那接下来啊,老师再往这放啊,这就是结果变量,对不对?哎,结果变量, ok, 那怎么办?哎,是不是来一个,比如说二 esurt, 老师定一个变量 名叫 redot, 是不是英文单词结果的意思,然后等号负值,哎,负多少值啊?哎,非常好,零。为什么负值为零?哎,因为我们现在还没有做累加计算,那结果是不是零才是最合理的,对不对? 要不然是不是就不公平了?好,那么接下来第三步干什么来着?哎,第三步是不是就开始这个循环了?那循环的话是不是得背背语法啊?循环的语法是什么?哎,是不是就是 w, 然后放上条件啊?条件, 然后接下来呢?是不是冒号,接下来在这里面要重复执行的是加法运算,对不对?那老师一个二个问,条件成立,是不是则重复执行,则做这个加法运算?那老师问你个问题,什么时候就不能再做加法运算了呢?也就是这个条件该怎么写呢? 哎,是不是就是加到一百就不能做加法运算了?那是不是就是,哎,比如说我要小于等于一百,那老师问小于一百零一行不行?哎,也行,对不对?哎, ok, 那这个加法运算怎么算呢?加法运算怎么算啊? 是不是就是前两数的结果?这么说啊,前两个啊,前两个数的结果加,加谁加啊?第三个数, 然后呢,接下来是不是就是前三个数的结果加上第四个数,是不是就是我现在的结果?所以我们发现啊,这个地方是不是要是每做一次加法?哎,每啊计算一次加法,是不是则干什么?更新一次?二 e, s u, l t 变量值,对不对?哎,那接下来这个事怎么做啊?首先这个表示结果的变量是谁?是不是瑞大?他前俩数的结果是不是要加上第三个数?那第三个数是谁呀?是不是也是?哎,呀,对吧, 那么接下来啊,我们是不是要把这样的一个结果用这样的一个结果去更新咱们的 redot 变量才可以,对不对?那怎么更新啊?哎,其实非常简单啊,是不是?我们就把二 esu lt red 这个变量是不是重新复制,是不是就可以了? 好,当然这句话同学们讲讲是不是能化简?化简是什么?哎,瑞造他加等于,哎,好,那老师是就不化简了啊,那么并且我是不是保证一加完了加二再加三,那所以增量是,哎, 加等于一,非常好。那么接下来啊,注意了,老师,现在呢,这个加把运算是不是已经写好了?是不是要进入到第四步打印结果?那老师问了,这个打印结果就 就是 prant, prant 打人谁啊?打人 redot, 好,那老师问 proint redot 这个代码放在哪?那老师这么问吧,是放在外偶循环体内部缩进写还是顶格写? 那我们就讲啊,是不是一一直加到一百之后,我再要这个结果,那如果要是放在哒哒这个位置的话,是不是就是每计算一个结果打印一次,每计算一个结果打印一次啊,对吧? 哎,所以啊,这里的话呢,我们推导出来啊,这时候我们去打印结果的时候呢,我们要打印,哎,这个最终结果,所以是不是就不放在循环里面了?那所以呢,这里老师来一个 perint, 是不是打印 redow? 好, ok, 那么现在啊,注意了,我既然已经打印了,那现在我们是不是就得去进行到第五步,咱们右键运行,看这个结果是否正确了。好,那么现在啊,咱们右键转一下,同学们,注意, 五零,五零,哎,那老师问了,这个局结果啊,对不对啊?这个结果对不对啊?同学们,哎,有的人说 是咱们要有信心,计算机计算个这么个数还能错吗?对不对?哎,但是啊,我们也得去验证一下,那怎么验证啊,难道我们这时候拿个计算器,一加二加三一直加?同学们,不需要啊,这个时候一定要发挥大家的聪明才智,咱们怎么做呢?把这个数稍微改小一点, 我一加二加三能不能口算出来啊?能,一加二加三等于六,那我们运行看看是不是结果为六,那是不是就能推断出来加到一百,这个结果是否正确了呀?对不对?好,那么现在啊,咱们右键去乱一下来看啊,得到结果是不是六, 那证明我们的程序是不是构建的没有问题啊,对吧?哎,那接下来啊,比如说老师把它改成这个到一百的雷加河,那么再去用 逐渐运行,咱们来看一下是不是 ok, 五零五零。那接下来啊,这个运算结果搞定之后啊,同学们跟着老师回到讲义当中来,咱们去看一下啊,在讲义里面,我们发现是不是输出的结果也是五零五零,那怎么做到的呢?把刚才的需求回顾一下啊,同学们来看, 整体上做一个回顾,是不是我要一加二加三一直向下累加累加到一百,那所以这是不是就是我累加数字的第一个值,这是不是累加数字的第二个值?中间的值怎么计算呢?让挨加等于一是不是就可以了? 那我要做加法,是不是要得到结果,那结果,因为没有做加法,初始值为零,然后呢,随着我循环的运算,让我们的蕊造他加等于 i, 也就是让 蕊造他前俩数之和,再加上我的第三个数,然后把这个结果去更新,蕊造他结果变亮是不是就可以了?当把一到一百以内的加完了,是不是再去 去打印结果,验证结果是不是就可以了呀?对不对?哎,这就 ok 了,那么这是我们循环的第一个应用啊,那么通过这个应用呢?让同学们从循环的流程啊,语法方面呢,咱们来一个更 这个深层次的这么一个体会啊。好了,那把这个应用案例讲完之后呢,老师把咱们这个视频啊,就稍微暂停一下。

我们来创建一个变量萨姆,用它来表示最终的结果,先给它复一个值是零,接下来就使用 four 循环, four 用 i 来接收 i 音 range 从一开始到一百。前面我们说了 rin 指它不包括右边的值。为了表示能够从一到一百,我们这里应该填写一百零一,这是小伙伴需要注意的地方。接着我们就用这个 sum 加上等于 i, 最后输出一个结果 some, 我们来运行一下输出的结果同样是五零,五零与我们前面使用 yo 循环输出的结果是一致的, 但是这里的代码要比之前使用 y 循环更为简单。 yy 循环的时候,我们还要创建一个变量 i, 通过这个 i 来判断它的值, 每次还要对这个 i 进行自增。而我们使用放循环则简化了许多,这里的 i 由 rin 值负值,而 rin 值函数是从一到一百依次将这个值复制给 i, 所以就不需要再对 i 进行加一了,其他的地方都是一样的。 这就是本节我们要介绍的内容,小伙伴们下节再见!点赞加关注,教你用动画学编程,无比轻松!

好,同学们,那么这一小节啊,我们一块去学习一下外偶循环,那么在解释器当中的执行原理,也就是执行流程, 那么老师准备怎么做实验啊?注意一会呢,老师,在咱们的代码当中啊,加一行代码,我们去做实验,看看解释器是如何执行,为了验证这件事情呢,我们再去抵 bug, 去调试,去看解释器到底一步一步是如何执行我们的程序的。 那接下来同学们跟着老师一块回到派场舞当中来,在派场舞里面呢,我们是不是循环打印了五次?媳妇,我错了,比如说,老师在第十四行的位置啊,加上一个 perint, 那么这个 perint 呢?老师说出了一个句话啊,比如说, 原谅你了,对不对?哎,原谅你了啊, ok, 好,那接下来注意啊,老师问了,如果现在老师去右键转的话,接直器是 如何执行的?那比如说老师把这个问题问的更透明一点,老师问第一个问题啊,原谅你了,这句话的输出 是输出一次呢?还是重复输出五次呢?哎,这个时候你看啊,咱们有人就说,可能想到重复一次呗,因为他没缩进啊,哎,有同学可能想重复五次吧,他不是在外国的后面吗?对不对?但是同学们一定要切记啊,他 能够重复执行,是不是要处于外偶循环的缩进关系当中,是不是才会被外偶循环控制重复执行? 但是很显然,这里的第十四行是不是并没有处在外外循环的缩进关系里面,所以那么也就是说,这个普瑞樱桃他肯定只执行哎一次。那接下来老师又问了,这一次是在什么时候执行呢?比如 说两种答案啊,第一种答案是五次媳妇我错了之后来一次原谅你了,还是第一次媳妇我错了后边就放上原谅你了呢?那这到底是怎么放的呢?哎, 那接下来啊,注意了,咱们留下一个小伏笔,现在跟着老师右键咱们去转,看一下解释器到底是如何执行的。那么现在啊,咱们右键转团部注意来看, 是不是重复打印了五次,媳妇我错了之后,是不是才打印了原谅你了,对不对?好,那么接下来就是说咱们解释器的一个执行流程,是不是就是 当整个循环体循环执行完了,是不是才继续顺序向下执行了接下来的这个代码啊,对不对?哎,所以就是说啊,外欧循环体,这是不是一个整体,当整个把这个循环执行完了, 是不是才执行接下来的这些顶格写的代码啊,对不对?哎,这就 ok 了,那接下来啊,同学们思维稍微灵活一点,老师问, 现在我想让这个盆引他原谅你了,也执行五遍,怎么做?哎,非常非常好,是不是把这个盆引他也太不见缩进一下,让他处于我们外偶循环的缩进关系里面是不是就可以了?那么这个时候啊,右键转一下,咱们来看,是不是 就是你说一遍,媳妇我错了,媳妇就说原谅你了,你说一遍,媳妇我错了,媳妇是不是就说原谅你了,对吧?当然这件事是不是还是继续向下循环,循环循环对不对?哎,这是不是就做到了我们刚才所谓的让 pernt 原谅你了,也重复执行的这么一个效果呀,对不对? 好,那么接下来啊,老师还是把他取消这个缩进,同学们注意来看啊,当取消缩进之后,我这个盆引他是不是就不处于 带有循环体的缩进关系里面?当然,那么这个顶格写的是不是就不会被循环控制重复执行了呀,对不对?哎,这是他, 那么接下来啊,这个小现象,大家看完之后呢,咱们这样来啊,用底 bug 工具去调试一下,看一下解释器把我们这几行代码到底是怎么执行的,那我们说底 bug 工具怎么用来的呀,是不是在我们想调试的这段代码的第一行加上一个断点,然后 这回右键选择谁来着,是不是抵八个呀,对吧,选择抵八个,那么这个时候啊,同学们注意了,我们单击这个 f 八 stower 是不是就是按步操作,对不对?哎,我们单击一个,下一步同学们注意是不是就跳到了我们的 yo 循环的 第十行代码,咱们来看啊,当老师把鼠标悬停到哀小于五这个条件之后,因为此时的哀取值是零, 那么弹圈提示我们布尔形数据类型条件直失处,那就说明条件是成立的,那如果条件成立,是不是就执行了下方带缩进的代码啊,对不对?哎,那么接下来啊,同学们注意现在按步操作啊,注意下 是不是就开始到 pro 打一媳妇,我错了,然后再下一步是不是执行的是挨加,等于一这个技术器做自增, 那么老师问啊,再单击下一步,他跳到哪里会执行?普瑞你的原谅你了吗?不会的对不对?因为普瑞你的是不是没有在缩进关系里面?那么再单击下一步,腿面就会来看啊,走,你! 单击下一步之后,同学们来看, a 的值变成了一,为什么变成一了呀?哎,因为是不是执行了 a 加等于一了?那原来是零加一,是不是变成一了?那老师问啊,代入到这个条件是成立还是不成 成立?哎,取出一处是不是成立的?那成立是不是下方带缩进的代码,是不是就要执行了呀?对不对?哎,那么现在再单击啊,下一步是不是不认得再单击下一步,是不是挨字增一, 再单击下一步呢?哎,哎,自增一之后是不是变成二代入到条件成不成立?成立。那 pro 和自增一是不是又要执行了呀?对不对?哎,再来一遍啊,下一步,再下一步,再 下一步,哎,又加一是不是变成三?但入到条件是否成立,是不是还是成立的?那么再单击下一步,下一步咱们来看啊, pro 和自赠一是不是还会执行?再单击下一步,哎,就变成几啊,哎,非常好,是不是变成四?走,你好, 那么四带入到条件小于五,是否成立呢?是不是还是成立?那所以配音团和自增是不是仍然执行?那老师再问啊,再单击下一步,哎,就变成几了, 哎,由四加一是不是变成五?代入到条件还成立吗?取之为 boss 是不是不成立了?那接下来老师问了,关键点就来了啊,第十一、十二行这两行代码还会不会执行? 条件成立,是不是执行这个要重复执行代码?那么但是条件不成立呢?同学们注意了啊,老师,再单击下一步, 哎,是不是就跳到了第十四行的 pro? 那也就像老师说的,当条件成立呢,那下方带缩进的代码就会被重复执行,如果条件要是不成立的呢,是不是就退出当前这个循环,继续向下执行这些没有缩进关系的代码的呀,对吧? 哎,那么这就是我们外偶循环他的一个循环流程,所以我们发现啊,是不是由我们的计数器控制,并且由这个条件控制,那么循环题里面的 命令是不是会自上而下循环执行,循环执行指导循环到某一个点,这个条件不成立了,那么这个循环的语句是不是就不执行了?那么继而向下是不是顺序执行下边的顺序代码顶格写的代码了呀,对不对? 哎,这是我们循环他的一个执行流程,那接下来啊,同学们注意这个循环的执行流程啊,同学们简单去了解一下。那现在呢,老师把咱们的视频啊,稍微暂停一下啊。


老师,嗯,我刷到一道题要用新号画这样一个图形。哦,那你怎么写的我就直接输出了呀。人家题目肯定是要你根据用户输入来吧。对对对,后来发现要根据宽度和高度来,你有啥想法?肯定用循环吧,输出新号的数量连宽度全已高度 不行啊,这横着和竖着应该要分开来循环吧,不过咋整呢?想想之间讲的衣服的嵌套一个衣服条件里面可以再套一个衣服条件 哦,循环里面也可以套循环。对,如果一个 i 次的循环,内部又有一个 j 次的循环,那么外层的每一次循环都会从头执行一遍内层的所有循环,所以最内层的代码会执行 i 乘以 j 次。那这还不简单,横着循环一次,竖着再循环一次, 每层循环的内部代码都要比上一层多。缩进一起缩进可以用空格或者太不见,但是不能,不能用大括号。嗯,我是说不能混用空格和太不见,不然就像你这样啊,是我鲁莽,统一一下缩进, 这不又绕回来了吗?能让他很多 print 吗? print 里面可以加一个参数 and 等于空字符,让输出之后不换行。知道了, 权衡着也不行啊,画完一排还是得换行。不加任何参数的 print 可以输出一个空行,你可以加在内层,循环结束之后,也就是每输出完一排的时候。早说嘛,你这个 缩进不对啊。怎么又不对了?你不是说要比上一层多一级吗?但你这个不是你的换号不是内层循环的内部代码,是内层循环全部执行完之后再执行,所以是外层循环的这一集太烦,还是大括号方便,这下可以了吧。 哎,这个长宽不太对吗?试试看,把两层循环的软纸参数换一下。 yes, 其实在你最开始的那个代码加一个衣服,根据次数判断什么时候需要换好你就可以了。这么简单的方法你怎么不早说。还有更简单的呢?记得之前说过吗,字符串可以跟数字相乘。 哦哦,那直接一同循环,每行用新号圈以宽度就可以了吗?不,你甚至连循环都不需要啊喵,你知道怎么写吗?

循环语句还有另外一种写法,就是外奥语句,外奥语句的写法是外奥判断条件成立, 彩虹冒号就执行某个语句,这里我们定一个数字,数字等于零,从零开始我们来用外语句实现打印零到十,那首先我们定一个变脸数字复制等于零,那么条件是什么?条件是数字小于十一,那么就打印这个数字, 但是我们注意到这里数字他也没有变化的,如果这样的话,他会一直打印数字零,我们可以运行看一下,这是因为我们没有对这个数字进行任何的操作,那我们需要在每个数字打印之后把它增加一, 那么就是数字等于数字加上乙,这样就可以实现打印从零到十,所以我们不管用拨循环还是外循环都可以实现相同的功能。

哈喽,大家好,我是王小皮,今天我们来讲 passen 入门的第六届 fur 循环。首先我们再来复习一下循环语句的执行流程,在开始之后会进入判断,成立时则会一直循环执行,直到不符合条件时退出。今天要讲的 fur 循环和上节课的 vivo 循环有所不同, 我们对比来看,左边是上节课学习的 vo 循环,每轮循环都先进行判断,成立则进入循环,不成立则退出循环。而在负循环中是将后面集合中的元素依次复制给爱进行循环,集合中有几个元素就循环几次。 我们快速进入到实际代码中,给大家解释富尔循环的用法,这里我们写下富尔循环代码,富尔爱音 rang 五。刚刚我 我们有讲到,在后面这里会写入一个集合,这个乱置五呢,就代表一个集合,他是一个左臂右开的集合,左边是零,右边是五,也就是说他代表零一二三四这四个数字。我们继续写刚刚的代码, 我们每次从睿智五代表的集合中按顺序取一个数负值给爱,那我们把爱的值打印出来。 好,我们运行这个脚本,这里就看到了打印出了零一二三四这五个数字。我们今天学习了 fu 循环,并对比了和 wil 循环的区别,你学会了吗?我是王小皮,期待我们下期再会,皮卡皮皮卡丘。

今天要讲的内容是 python for 循环的概念与用法。 有这样一个问题,在一个农场里,最初养了三只兔子,每隔一年兔子的数量会翻涨到原来的两倍。那么在资源条件允许并且所有兔子都生存的条件下, n 年后兔子的数量会是多少呢? 例如,当恩等于一时,一年后农场中会有六只兔子。当恩等于二时,两年后农场中会有十二只兔子。 在上面的问题当中, n 作为用户的输入程序,计算该问题的结果,并且将结果打印到屏幕。 那么在解决这个问题之前,我们首先来讲解 python 循环的知识。复循环概念与使用 for 循环一般用于完成指定次数的循环。打个比方,我们希望循环十次,从零打印到九,开发代码 for ie range 零逗号十 print i, 这里 i 为循环变量,循环的范围是零到九,虽然只开发了一行 print 代码, 通过否循环将该代码重复执行了十次,在屏幕上打印了零到九这十个数字。否循环的基本语法是否变量 in 集合 冒号,冒号的下方是需要循环的代码。这个语法呢,我们可以理解为变量在集合中循环,循环时执行代码一,代码二等,等到代码 n, 当变量完成了集合中全部元素的取值之后,循环结束。 注意,根据 python 的书写格式,循环的代码前需要有一个 top 空白, 对比刚才的代码,变量为 i, 集合为 range 函数生成的结果,循环代码为 print i, 也就是说, i 在 read 函数的结果中循环,循环过程中打印 i 的值。如果 i 循环了 read 函数结果中的全部元素,那么循环结束, 而 range 函数的结果是一个整数列表, range a b 会生成 a 至 b 减一这些数字,所以在 range 零时中, 变量 i 依次取值,零一、二三一直到九这十个数字特别需要注意的是,其中并不包括十。 最后我们来看一下后循环的流程图。后循环开始的时候,检查变量是否已完成集合中的全部元素取值, 如果没有未访问的元素了,那么循环结束,否则将下一个未访问的元素复制给变量,并且循环代码一,代码二,一直到代码 n 完成之 后,再检查集合中的元素是否全部便利。那么到这里呢?否循环的概念就讲完了,我们回到开始的问题, 在一个农场里养了三只兔子,每隔一年兔子的数量会翻涨到原来的两倍。 n 年后兔子的数量是多少呢? 现在我们将后面每一年对应兔子的数量列出,例如一年后有六只兔子, 两年后有十二只,三年后二十四只等等。这里呢,六等于三乘二,十二等于三乘二乘二, 二十四等于三乘二乘二乘二,所以 n 年后有三乘二 乘二乘二,也就是说一共有 n 个二相乘,也就是三乘二的 n 次方。只兔子使用后循环来计算 n 年后兔子的数量是多少。 电量 i 循环零至 n 减,一共 n 次,每次循环兔子的数量都翻一番,所以循环 n 次兔子的数量就会是乘以二的 n 次方。 现在呢,我们来看完整的拍森实线代码。首先定义变量, rabbit 代表初始时兔子的数量初始化为三, 然后打印输入的提示信息,通过 input 函数从键盘输入 n 的值,使用后循环来计算 n 年后兔子的数量是多少。 代码 rabbit 等于 rabbit 乘二,被循环了 n 次,所以兔子的数量最终翻了 n 翻最后打印结果。程序运行时,假如通过键盘输入三,那么屏幕会打印三年后兔子的数量为二十四。 至此,否循环的概念与使用我们就讲完了,现在呢,给大家留一个课后作业,使用否循环来实现一加二加三,一直加到 n, 其中 n 需要用户从键盘输入将计算结果打印到屏幕上。 好的,感谢大家的观看,我们下节课再见。

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

视频前面同学们大家好,我是安微侠,我们这节课来看一下关于咱们的循环结构,那么对于循环结构来说,我们要说到的是拍摄里面有这样两种循环结构,一种是风,一种是弯腰。哎,说的风和弯腰, 说了你如果说接触过其他相关编程代码类的,那么你多多少少是有点印象的,就是风循环,弯腰循环。而在拍摄上面,他把他说需要的说的更具体,或者说更直白一点叫做是便利循环, 放循环叫做便利循环,而弯腰循环叫做,是啊,无限循环,弯腰循环叫做是无限循环,具体是怎么样的?我们来看一下。 首先来看所谓的这个便利循环是什么?也就是我们的放循环,放循环。在这个里面来看一下关于他的结构,关于他的结构写上放之后 写上循环变量,然后是硬写上便利的结构,再写上语句框说,哎,这个我能看懂,就我能看见,就是我不懂, 我不懂。那我们在这一定要注意什么时候用循环,什么时候用循环,就是有那么这个语句块他可能会重复很多次, 他可能会重复很多次。举一个最简单的例子,也是我们程序上一般来说循环入门上面常给大家举的例子,那就是说我要计算十以内的数的 和累加和,十以内的正整数的累加和,十以内正整数的累加和。那么这个时候我们写柿子的时候是什么呀?一加、二加三,再加等等,一直加到十,是不是说,哎,他算出来是几啊?对不对?然后现在说你如果使用常规前 的那个顺序解过来表示的话,那你无非就是说什么 a 等于一加二加三,然后一直悄悄的加十,然后最后输出 a, 那他就算出结果了呗?是不是?这个是没有问题的,这个只是针对说我们从这个结果上他 怎么样去算这个结果,那么当然说还有什么,哎,我们用快捷用算知道有那么一个数学家,他是怎么样算的呀?实体出来一九十二八十三七十,是不是这样去算出来的,对不对?那么我们在这是只针对结果,但是我们现在要要的是一种什么呀?编程的思维 就是怎么样,我能够按照这个做出来的程序,既能够算出来十以内的雷家河,还能算出来说我要的是一万以内的雷家河。那你说你就写着表 老师,你是不是得废掉好多时间呀?不实,不实用,不现实是不是?所以说,哎,我要是再加几个零呢?他以内的所有的数的哪家和,那你是不是更不现实了,对不对?所以我们要用一种思维去解释,看 能不能把有些工作扔给计算机,而不是我从键盘上去输。所以所谓的计算思维就是什么呀?就是说 不会排除重复,但是重复是交给计算机去做的,我们只要去利用,怎么样让重复你写的时候容易,然后他能出结果,然后这个剩下来的那么比较繁琐的,我们可以交给计算机,计算机他处理的时候,如果说你能把它做的更简洁一些,那就最好了, 那就最好了,是吧?这是一种不,我们对于算题思维的,或者说叫做算法的一种提升了,而就在这个 里面说,我现在我就去算上一个十以内的磊家河,那么这个时候要注意我们怎么样算,我只需要这样去做就行了。就是说,哎,我算十以内,那我算一呢?一以内的正者,说到磊家河是不是就是一啊?所以说我一直需要的是一,一加完之后加二, 加完之后加三,加完之后加四,是不是这样子一个问题?所以说,哎,我用一个 s 来放他的磊家河, s 这个空间我正用了,我就用表示磊家河了。一开始我还没加数,你没加数的时候,你的 s 得有一个值吧? 都有一个机制吧,对不对?都有一个机制吧, s 等于零,然后那么我们用另外一个说,专门用来就是我不断的往里面去推数,先推进去一, 一再推进去二处理掉,再推进去三处理掉,再推进去四处理掉,再推进去五处理掉,是不是这样的一个过程?所以你去想他其实一直在重复的一个是什么呀?推进去新数处理掉,推进去新数处理掉,一直在重复这样子的一个过程, 那我们把这个心数,比如说放给爱爱十以内的正者数,我们从一开始,然后现在就相当于我把一推进去了, 推进去了之后你得处理啊,怎么样的一个处理过程?把?他是不是累加给 s 的一个处理过程,对不对?把他累加给 s 的一个过处理过程,所以 s 就等于 s 加爱呗, 是不是 s 等于 s 加 i, 在这个基础上,然后我的 s 看一下就变成一了吗?把刚才的那个一加给 ss 变成一,哎,那 i 一呢?哎,我再推进去一个新的数,我把一加完了之后再推进去一个,谁啊?是不是再推进去一个二了,对不对?推进去一个二,然后这个时候仍然执行什么 s 等于 s 加 is 是上面的一,把刚才的二再给处理掉,一加二, s 就变成三了, 而爱里面我要推进去一个心数,爱里面推进去一个三,再执行 s 等于 s 加爱,然后说,哎, s 由三再加上刚才推进去的那个三,处理完之后 s 变成六,爱推进去四等等等,是不是他整个的处理过程就是这样一个过程? 对啊,整个的处理过程就是一个过程,就是说一开始我要给 s, 你的 s 一直要接收外来的数字,那么他必须一开始要有一个机制,对吧?他一开始要有一个机制, 剩下来的就是给数加,给数累加,给数累加,给数累加的一个过程,没问题吧?而给数累加着,那我们就把这个就称为可以作为本题的,他叫做什么? 循环变量,他是不是一直在变化的控制这个循环次数的?你累加到什么情况下,我就不累加了?他是不是控制次数的,对不对?控制次数的,然后在这个里面说控制次数者 就是循环变量,我们就可以放成爱了。哎,这个后面就表示他的一个什么呀区间, 就是说爱从谁开始到谁结束就是他的一个区间,也就是说你的这个可以操作的一个范围。那我们的爱是不是从一开始到十,是不是从一开始到十说到这 这个位置了?那么就要注意到说,哎,在这个题里面我们就可以使用说那一到十这个范围怎么样表示呀?我们就要给大家说到这样一个 ranch, 这样一个函数,这样一个函数他有三种形式,他有三种形式,一种是嗯,直接写一个数,他表示的范围,他表示的范围,他就表示的取的是一个呃,列表,取的是一个列表,然后在这个里面说,他表示的是从零到 n 减一, 哎呀,从零到 n 减一,这是一种形式。然后像比如说是本题来说,我确定了我一开始就是从一开始的,那你就要把一写上,你要不写一的话,他就是在这个里面说到的默认是从零开始的。然后,嗯,这个时候,对, 对应的就是说我们再这样写吧,就是 x 到 n, 那么他其实范围是什么?是从 x 开始,但是不是 n, 而依然是 n 减一,所以说最后的那个 n 是不包含的。然后还有一个说,哎,我只要基数,或者说只要偶数,那就是跳着要 跳着要跳着要,他是什么样?比如说这个是 x n m, 他指的是 x 到 n 减一,然后是要的是每 m 个取一,每 m 个取数,每 m 个取数。比如说我从一到 就是十吧,一十认知,认知一十,然后是二,他表示取的是什么呀?一,然后 隔上一个,每两个数取一个啊?三五七九,是不是这些数呀?而九正好到小于十。如果说我从这是从二开始,从二开始,那就是什么?二四六八, 有石吗?没有石,因为石是不包含的,到他的前一个石是包含了包含的。来理解吧。这个就说到的是我们在树里面,便利的树里面,当然对于便利结构不光有树,便利结构可以是谁啊?一定要注意。便利结构可以是啊,字符串, 哎,他还可以设文件,当然还可以是我们的这个 ran 制,还可以设组合类型,都可以的,都可以的,就是说反正他是一个大的区间。对于说自服穿什么 意思呀?就是你从这个里面,比如说我的字符串是 xyzabx 吧,然后在这个串里面,那意思就是是 x 的时候是 y 的时候是 z 的时候是 a 的时候是 b 的时候是 x, 就逐一去取踹里面的,然后对于文件也是同样的道理,逐一去取文件里面的东西,对于弱者,这样我们说了到底是逐一取取谁?那么它有三种形式,它有三种形式这一种,然后说,哎,从指定初始值的,然后指定初始值还指定了不长的,它有这三种形式。 完了之后还有就是组合类型,那么我们后面提到的关于组合类型什么列表呀之类的,那么我们都可以说,哎,从它里面去啊,取出数字来,取出数字来,然后把这个知道了之后,我们来看一下,说,我在这试着写一下,就, 就写那个十以内的正准数的哪家,十以内的正准数的哪家。然后我们在这说,哎,比如说先写上什么你的 s 是不是首先要给他给个零啊?对不对? s 要有一个机制,然后写上 fo, 就写上 fo, 就开始开始计算了 fo, 比如说我依然用 i i 硬 a 哪个范围啊?屎以类着包含屎,那么我们在这个里面 range, 当然说,哎,是,其实只是零还是一,对于加法来说无所谓的,但是我们知道对于乘法来说,你乘零还是乘一完全是两个概念是不是?然后对于加法来说,把这个零加不加无所谓, 但是在这我们要注意,事实的话,我要到十一来理解吧,事实着我要到十一,他表示的是什么呀?就是零, 零到十呗,对不对?零到十呗,然后冒好,一定要记住 af 呀, l 四呀,在这的放呀,后面的弯呀呀,他的结构结束都是有一个冒好的,然后下面语句快,语句快是什么呀? s 等于 s 加 i 就可以了,就可以了。他就表示一开始 i i 开始了,开始从谁开始呀?从你的这个范围的第一个值为零开始,所以说它表示 s 和 i 第一的两个变量, s 一开始是零, i 一开始取了否开始他就取值了,取了零,然后执行了 s 等于 s 加 i, s 还是零,然后继续。 这个时候要知道执行完这一句之后他又回上去了,又回上去之后,哎,刚才取了零,下一次就要取一了,然后加给十二一,然后,哎,执行完再 回上去,再回上去 i 是二了,然后加上是三, i 是三了,加上是六,等等的等等的,一直加到后面说我加十,加上了十,加上我们知道应该是多少?五十五了,是不是?然后说,哎,下一个再有取的值吗? 十一吗?没有了,因为我的爱界定就是从零到十的,那么这个循环结束,循环结束你算出来了,我不知道怎么办呀?在这个位置,那你就再加上一个 printer, 将 s 输出就可以了呗。但是 printer 肯定不属于这个否了, 能理解吧。那我们在这个里面把这个可以做一下,我们在这个里面可以去说,哎,我今天新建上一个文件吧,新建上一个文件吧,然后给他一个名字,无所谓叫什么名字了,然后在这个里面,比如说是 sus, su, 然后我在这开始写,我们说到的说 d e 了,一个什么 s 等于零初始值,是不是?然后抱循环,哎,在什么里面呀?在任职的从零开始也行,那我就不写初始值了,然后是到十一, 然后下面所要做的操作是什么呀? s 等于 s 加 i, 做完之后 print, 这个时候你要注意啊, print 在这个里面看,如果说你要是将这个 print 放在这个位置, 他对应的是什么?爱美执行一次,这两个都去执行,这两个都去执行,那我们可以在这个里面去看一下 ctrls, 然后 f 五去算一下,哎,你会发现这个就是他的,就相当于每一部 单步用行的一个过程了,你看把零加上以后,加上一,加上二,加上三,加上四,加上五,加上六,加上七八九十, 是不是?然后我只需要在这个里面说,我将 praying 去,我去退回去,退到一开始,那么你一旦退到一开始来说,他跟他就是兄弟, 我可不是从属关系了,是不是?所以这个时候我再将他用心一次的时候,你会发现,哎,简单明了,我直接一个五十五 说,一定要这样吗?那这种也是有它用处的,就要你要理解它的一个包含从属关系,并不是说一定要把它写在哪,因为有时候内部你也可以放个普云,它,它就相当于有一个监视器,我来监视每一次的结果, 对不对?有些程序是有必要做个监视器的,所以在这个里面,那么你要明白,在这两个,你看出 出现这两个结果,出现这两个结果唯一区别在哪呀?这个就是普瑞特从属于 fo 了,对不对?而对于这个普瑞特和 fo 是平等的,普瑞特和 fo 是平等的。然后说,哎,那我把这个软纸改一下吧,改成一个逗号 一样的,能理解吧?因为改成一逗号的话,就是从一到十,我们知道对于那个 s, 呃,累加的这种的话,对于这个零加不加无所谓, 对不对?然后现在我们再将这个题说扩展一下,说,咦,我的这个,我的这个数,永远这个程序永远只能算十亿内的真正数的内加合了,我如果说我要算, 你想算几,我现在就是一个做一个简单的计算器,你要算几以内的,那你就输个几就行了呗。比如说我要算一万以内的,那我输个一万,你就 算出一万以内的,怎么办?我们要让这个,比如说 a 吧,随便输入一个数,那就是 a, 等于啊 evil 转换成纸,是吧?然后通过这个 input, input 在这块可以输上一个提示语句,可以输上一个提示语句。比如说 我在这个里面说请输入一个整数,请输入一个整数 ctrls, 然后在这个里面先不能 ctrls, 把这放成是什么 a 加一,这个能理解吧?因为如果说我在这输的十的话,你到 a 的话,他是直接取的是九,他没有算本身是不是?然后我要考虑到这个,我加一坑穿 s, 然后 f, 我,哎,这个时候,现在好,这个数由你来决定,这就是我来开发,有用 户来决定他到底要算几以内的哪家,比如说我算五以内的车回车,五以内的哪家盒,算出来是十五,然后说我再去用心一下,我再去用心一下,用心一下之后说我去算一千以内的哪家盒,一千以内的哪家盒,是这个, 对吧?所以这样子你看,哎,这个程序是不是就相对来说就会灵活一些?那么他就成了什么呀?针对可以算出任何数字,任何数、任何数由谁来决定?由用户来决定,用户怎么来决定?他通过输入 是不是用户输入数字来决定我到底要算几以内的,这个没问题吧?把这注意一下,把这注意一下。

大家好,上个视频呢,我们学习了后循环,我们可以通过序列里的数据数量来控制循环的次数,比如有多少的字符就循环几次,但是这并不是控制循环次数的最好的方法。这里我们学习一个函数 ringer 函数,也就是范围函数。 我们可以通过 range 函数呢来自定义,创建一组序列数字,在编辑器里调用 range 函数,在参数里输入要生成的序列参数,这里我们输入六 用否循环在 range 函数里呢进行循环便利每次循环打印变量 i 执行代码可以看到否循环从零开始循环了六次,这样我们就可以通过修改 range 函数里的参数来控制循环的次数了。

三十三,技术循环,这是一个呢比较重要的问题,大家呢一定要掌握好这个佛如果和软件函数在一起, 那么就构成了一个最基本的循环,叫做呢技术循环,什么叫做让其函数呢?大家信 看一下他的语法结构,软件括号,这是起始树,这是呢种植树, 这个呢是补偿。这三个参数有时可以不写,但是呢 种植树是一定要洗的,其实树如果你不洗的话就是为零。第二呢注意呢种植树他不包括他自己。 第三注意了,补偿如果要是不行的话,就是那一。好,我们举例说爱因软件一十 啊,那就是爱他在这个软件里面从头到尾去 少一遍,从哪里开始呢?从一开始到哪里呢?到十,但是呢不包括十, 补偿的是二,那就是从一开始一十到三到三到五到七到九, 这是第一个例子,希望大家能够理解软句函数这里面三个参数的意思。 再举一个例子, f i 因软结石,这个石呢是种植的痣,起始痣没有写,就是您默认为您补偿,也没有写, 默认为零,这时候打印二,那就是从零开始,零一二三四五六七八九。 好,那么再看一个例题,他要你求一加二加三,一直加到十,这样的一个和他的程序应该怎么写呢? s 等于零, s 就是这个和给他一个储值是零,没有,然后放按音软件。一,十一,为什么是一呢? 从一开始计算,为什么是十一呢?十一不包括,那就是到哪里为止就到十为止,这里面就完成了一 到十,这个补偿是一,那就是一二三四五六七八九十二就是在这个软组这个函数里面,从一到二到三到四,一直到十, 不到十一,然后写成 s 等于 s 加二,第一次循环就是零加一就是一, 第二次循环就是一加二,第三次循环就是一加二加三,第四次循环就是一加二加三加四,一直下去 到这个十一难为止。这时候你烹饪他 s 他,答案呢是五十五,这里面最难的一句话就是这个 s 等于 s 加,哎,大家把这句话呢记好,要记好,就是求 一个竖念,一个竖念,他的这个和每个项的和,他用 s 等于 s 加 i, 或者是 s 等于 s 乘 i, 这里就是一个成的。这样一个例子, 打球一乘二,乘三,乘四,乘五,一直乘到十,这个呢, s 的处置是一,不能写成零了,因为如果在乘法里面有个零的话,那么结果就是零, 写成一并不影响结果。然后 f i 因软解一事业处置是一种植 十一,这个十一不包括十一,那就是到十,补偿是一,然后呢, s 等于 s 乘二,再来打印这个 s, 答案呢是三六二八八零零, 这就很大了。好,再看。教你列出一到十之间不含舌等位数,并求他们的合,就是把 一到十之间的偶数写出来,列出不就写出来吗?并求他们的和 s 等于零,求和求加法处之为零,求乘法处之为一,然后负二。 英文句,从二开始,为什么从二开始呢?偶数一不是偶数,二是偶数,到几呢?到十不含十, 补偿是二,补偿是二,那不就二倒四,倒六,倒八,这个补偿是二,又是从二开始,那么所有的数 就对上偶数,这时候你旁人的爱答应这个爱,答应这个爱,就是把每个爱的值把它写出来,实体结果呢应该是二四六八。 然后 s 等于 s 加 i, s 等于 s 加 i, 这句话也可以写成 s 加等于 i, 这两句话是一样的,效果是一样的。最后 大英 s s 呢?是二十。看看这个答案是对的。最后我们再看个例子,他讲例出一道是直径不含式的尾数, 并求他们的合,但是不用刚才这个方法啊,用依附日志,用依附这个日志啊,刚才这个 地方不有个不长是二吗?对吧?他从二开始不长是二,那么他就是有数了,但是这里是 f i 应软句一到十不含舌,从一开始 不长是一,那么实际上呢,就是一二三四五六七八九。这个地方的意思是一二三四五六七八九,他不是, 是偶数。用什么一句话来写出他的偶数呢?那就是一夫爱爱就是这个一二三四五六七八九,除以二等于零,就是如果这个数除以二,他的余数等于零,那么就是偶数。 一个数除以二,余数是零,那么就是个数。这时候就喷的,哎,就把那个等于零的打印出来,不打不等于零的,把它剔除掉,然后再来一个 s 加等于二,就是 s 等于 s 加加加一的意思啊,不是加二,然后 prands 寄过来,是跟刚才是一样的。 那么我们来看一个例子,演示一下啊,他讲这个题目是什么呢?这个题目是列出设计类的偶数,并求和 到十,不长是二,不长是二,那么打印出来的肯定就是二四六八。那我把这个拿掉,你看把这个拿掉,大家看 运行一下,二四六八十以内的额数是二十,像这样使,竖着使,那么你想这样 要是不好看,那你就这样子来,在这个爱后面再加上这个顿号, n 的等于银行里面的顿号,就一行把它吃完。这个我们上一次讲了二十四 四六八二十,这个就是用布场来求这个呢?那数点,那如果 我,我不用补偿来信用数,用这个衣服来信用数,行不行呢?也行,也行,你看这时候就是从一到十,补偿是一 补偿,补偿,补偿是一呢,不就是一二三四五六七八九吗?但是你让他除以一个二等于零啊,如果除以一个二 余数是零,那么就把它打印出来,否则呢是就不打印出来,那也就打印出了这个二四六八,因为只有二四六八除以二的余数才等于零一三五七九,他 二除以二的余数不等于零,用一幅条形进行了选择筛选,我们运行一下二 四六八二十,那你想,我想把这个思考的二合命的,你在这个地方来,在这个地方也很简单的很,怎么搞?加一个同行吗?加个一 a 啊,等于这个什么呢?银行吗?不就行了吗?这个银行 里面再加一个什么呢?你加个顿号也可以啊,加个空格也可以,都可以,对吧?但是他现在就把这个二十呢吸到这个后面来了。你,你可以在这个地方用一个 粉航服,我们以前学过的粉航服斜杠加 a 那样的一个东西。 好,最后我们再来看一看,嗯,这个球 一到十之间的和,这是最简单的一到十之间的和,从一开始到十一,不包括十一,补偿十一,那么就是一加二加三加四,一直减到十, s 等于 s 加二。答应 s, 这个是五十五,答案是五十五。啊,那你讲我们上一次讲了,那我不像这样子,我求一到十直径的和你看直径的接, 就乘一乘二,乘以三,乘以四,乘以五,一直乘以十,求他的七,不是求求他的合。那怎么办呢? s 在这个地方改成一对吧。哎,这个都是一样的。这个 s 不是等于 s 加呀,是等于 s 呢。乘二呀,那就行了,等于 数字比较大,三二二三六二八八零零。我们刚才讲的那个题目,这个就变成了一个什么呢?一到十之间的乘积,一乘二乘 一直乘到那个是希望大家能够把今天讲的这个东西呢。嗯,思考一下。嗯,消化一下,能够理解程序的呢写法。好,谢谢。

对于 ebl 模型来说,我们需要让操作系统来帮我们做一些操作,而通过原声的攀升代码是没办法实现的,所以我们需要用一门可以跟操作系统打交道的语言,比如 c 语言 才可以去控制操作系统来帮我们做这些一步调用的过程。不过虽然原声的拍摄代码实现不了,但已经有人帮魔方装好了一些模块和框架, 能够让我们直接去调用。比如 a 三 gao, 这是拍成三点四引入的标准库,它可以帮我们实现一部 l。 还有一些第三方框架,比如 thailad, 你可能听过这个框架,说它是一个一部非主色的框架,性能有多么多么的好。还有一个框架叫 fashapi, 它也被炒的比较火, 在他的官网上说这是最快的拍摄背包框架之一,在某些情况下性能甚至可以和购源比肩。然后还有将购,将购现在已经到了四年级的版本了,在将购三之后,他就引入了一个 asgi, 这个 asgi 也就意味着将购三开始他也进入了一部时代。然后还有 sanic、 vibra、 quart、 twisted 以及爬虫相关的 aiosttp 等等。这些框架内部用的都是 ebl 模型,因为 ebl 模型可以提升性能。一步其实就是任务提交之后不等待嘛,要达到的效果其实就是单线增加时间并发,我们可以用更少的资源做更多的事情。这些一步框架典型的特点就是速度快,甚至可以快到能够开发游戏的服务端。 以前由于性能原因需要从拍摄清理到购物的其他语言的,现在逐渐变得不太需要了,因为在拍摄里面越来越多的框架都在开始支持一部。 虽然拍摄这门语言很慢,但我们结合一些知识一步的模块或者框架开发出来的程序也不会慢。 ok, 这些我们先有个了解,后面有机会我们再来看这些框架怎么用。现在我们先来用一下这个 askio, 它是拍摄给我们内置的模块, 这些第三翻译部框架内部通常情况都会用到这个 askio。 这个 askio 很多课程里都不会详细跟你讲,大多都是一句话带过,或者带你写个 小呆萌,然后下一步就带着你学框架了。但我还是希望能够让你知道 asio 具体是什么用的,毕竟它是很多一步框架的底层,我们还是应该稍微了解一下,先把它导进来,内存模块直接硬铺到就可以了。要用这个 asio 的话,我们要先搞懂一个名词叫事件循环。这个事件循环是一步变成里面很重要的一个环节, 我们可以把它理解为一个死循环,他会自动检测并执行我们提交给他的任务。有点像我们前面讲的 l 多路费用。这里的这个循环 我现在用尾代码来给你大概演示一下。首先他会有一个任务列表,比如在这里面我们放两个任务,任务 a 和任务 b, 当然还可以放很多任务,然后这些任务都会有各自的状态,比如这个任务可以被执行 或者已完成,然后视线循环就相当于一个死循环 we are two。 在这个死循环里面,他会检测任务列表里面有没有可执性和已完成的任务,如果有的话,他就会把可执性和已完成的任务 返回给我们,所以这里就会达到一个可执行任务列表以及完成任务列表。接着他会便利这个可执行的任务列表或任务应可执行任务列表,然后执行便利出来的任务。可执行任务多执行之后,他又会便利已完成的任务列表或任务已完成任务列表, 然后把这个任务从任务列表中移除。当然在此新任务的过程中,他也可以往任务列表里面添加新的任务。最后当任务列表中的任务全部完成之后,就会终止这个时间循环。 ok, 这个事件循环我们就大概这样理解就可以了。看着很复杂,但其实用代码实现的话,只需要一行代码 a c i o 点 get 英文的 logo, 这样代码执行之后就会产生一个事件循环,如果当前现在已经有事件循环了, 这行代码才会获取这个事件循环。我们只需要写这一行代码就可以得到一个事件循环。 ac 还有内部都帮我们做好了, 很简单吧。然后我们把它复制给 lob, 这就是一个事件循环对象。接着我们通过 lob 来对应一个 run onto complet, 你看这个方法名字 run onto complet 运行直到完成。这个方法就是用来添加任务的,通过他我们可以把任务添加到世界循环里面,然后世界循环会管理我们的任务,可执行的时候就会执行,他进入 l 的时候就会切换执行其他任务,如果任务完成,则把他总世界循环移除。

这节我们讲一下拍摄循环结构算法应用,猴子吃草问题。 问题描述,猴子第一天摘下肉干的桃子,当局吃了一半还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个, 以后每天都吃了前一天剩下的一半零一个,到第十天早上只剩下了一个桃子。求第一天摘了多少桃子? 我们分析下问题,每天开始的桃子数加上一才是昨天开始的一半,如果第十天开始的时候是一个桃子,那么第九天就应该是一加上一乘以二四个桃子, 第八天开始的时候应该是十个桃子,那么我们以此类推往前计算九次,每次计算公式都是相同的。接下来我们讲一下拍摄中的负循环,也就是计数循环。 循环次数重复一定时,通常称为激素循环,这是他的语法 for 循环变量,因序列冒号。 下面是语句或语句组,这里呢,我们要做几点说明,第一个序列里面的元素个数决定循环次数, 第二个循环变量在序列里面依次取值。第三点语句中不一定需要循环变量参与,下面我们看一下 啊,拍送程序,我们一开始呢把一付给变量 t 就是陶字锁,将来我们用 f 循环 fo r 音 red 九, red 九呢,里面包含了零到八这样一个九个数字,我们循环九次, 他的循环语句呢是 t 等于括号 t 加一乘以二。这里的循环语句呢,我们并不需要 i 的参与,我们只需要它循环九次就可以了。然后呢,我们就输出 dtn, 摘的桃子素为 t, 下面是程序运行截图,第一天摘的桃子树为一千五百三十四。

ok, 那我们这节课呢,带着大家来了解一下否硬循环其实很简单,我们呢可以在某些指定的范围列表,原主或者字典等等,这些可叠在对象里边 使用。 for 硬循环来进行便利元素,便利指的是我们可以一个一个的去反问。 ok, 你看一下他的这个语法结构很简单,对吧? for 代表的是为什么?什么的意思?在我们的这一个地方呢,他其实就是为变量进行复制, 那么这个变量的值从哪里来呢?哎,在硬的后面就可以去指定了,就是从我们的这些可叠带对象里面获取,然后呢挨个给他付值。好,当然我们这个变量拿到值之后啊,他其实是可以 放到下面的循环体里面去使用的。好,那么简单理解呢,就是我们从可叠在对象里面获取循环便利出来这个元素,然后呢复制给对应的变量,并且呢可以放在循环体里面去使用好。

如果你经常使用 pass, 你肯定遇到过这种情况。你在你的代码中写了一个 for look, 当你在运行它的时候,你就坐在那什么也做不了。你不知道你的代码还要跑多久,或者他还在跑吗?这时你可能会想,我可以在循环里面加入一个 print 语句,这样就可以看到目前循环跑到哪一步了。 其实拍嗓中有一个非常好用的库,专门应对这种情况。是的,我又掉库了,人生苦短。我用拍嗓这个库叫做 t q d m, 想要安装它也非常容易,打开命令行输入 p p in stop, t q d m 就安装好了。 然后我们只需要从 tqdm 中导入 tqdm 这个模块,然后把你的叠带对象嵌入进 tqdm 中,这时我们就拥有了一个进度条,你可以清楚的看到你当前的循环运行到哪了,也可以看到预计还要多久循环才会结束。这里你还可以根据自己的使用情况自定义一些输出信息。例如你正在 训练一个神经网络,你可以在这里加入描述信息 training, 并且将单位改成 epoch, 再次运行,你就可以知道当前的训练进度,并且每秒钟可以跑大概九个 epoch。 这里如果你不喜欢把 range 嵌套在 t q d m 中,你还可以从 t q d m 库中引入 t range, 这样做和刚才的效果是完全一样的。 总之, tqdm 这个库非常受欢迎,并且还有许多其他进阶的玩法,感兴趣的话大家可以去了解使用一下。最后,大家知道 tqdm 是什么单词的缩写吗?如果你知道的话,在弹幕或者评论区告诉其他的小伙伴吧!

上一期我们讲到腹循环,他可以帮助我们做很多重复的事情,今天我们就来讲讲他这个自增量癌的用法。什么叫自增量呢?就是自己会不断往上加一,比如说癌因锐逆时,那么这里会循环十遍, 癌的值会从零一二三一直到九。注意癌的起始值是零,这跟我们生活中的数数不一样,程序世界中一切都是从零开始的,不信我们可以用输出指定来试一下 f i 因 reni 十,然后 perri 以此输出。好玩吧,结合我们绘图指令还能有更好玩的。 怎么样?感兴趣的可以赶一赶前进步数和角度看看会发生什么。