00:00
同学们大家好,欢迎大家来到Python编程语言系列课程,这节课呢,我们来讲解Python当中的循环语句结构well,那么在这节课当中呢,我们来进行去学习,什么是循环,那么程序当中的循环又是什么?那么循环的作用是什么?以及循环构成的要素,以及什么是well循环,以及while循环的一个语法,以及今天关于while循环的一些实战,那么通过这节课的学习呢,我们要掌握循环语句while的使用好,那么我们切换到教程当中,首先呢,我们先来看一下什么是循环。那么循环呢,其实就是重复对吧?哎,我们现实生活当中也有很多这样的重复的场景,比如说啊,我们这个年复一年,日复一日对吧?啊,这其实就是一种重复循环的过程,那比如说我们的这个春夏秋冬啊,这个日复一日,这24小时是吧,那说到24小时,又说到了这个,就想到这个10分秒对吧,我们的时针,分针,秒针是不是在重复的转圈,转圈,转圈转圈,那其实它就是重复,那还有一种就是科学。
01:12
科幻电影当中经常出现的这种穿越了,对吧,回到了某一个时刻,然后一直在这里面循环,循环循环出不来了,那这种其实都是循环。它周而复始的重复的去做一些事情,我们就称之为循环,但是循环呢,它有两种类型,一种呢,是这种剂剂次形式的循环啊,一定它循环一定次数,那么我们这个循环就要结束了,那么。比如说啊,是这种for循环对吧?啊,或者说这个,呃,我们在其他语言当中啊,这个for循环,那这个for循环是啥?我们后面会讲它叫for in,在Python当中for in啊C这个Java Python当中没有for循环啊,这C当中有这种for循环形式,我们说记次的比较明显,对吧?如果没有学过其他语言的同学呢,大家听到这也不要这个,这个就是懵了对吧,也不要懵了,没关系,我们在这呢,先不用考虑它,就其次循环我们通过while也能实现。
02:11
那就是说什么是计次循环,比如说我现在目标啊,我要去跑步,到操场上跑10圈,那这个10圈它就是记次,那我现在是不是一次跑完一圈记一次,跑完一圈记一次,直到达到了什么呢?达到了10次啊10圈,那么现在我就不再跑了,对吧?这种就是剂次循环,那还有一种是什么呢?类似于这种呃,条件啊,达到一定条件的这种循环,那我现在还是要去跑步,但没说要跑多少圈,我想跑呢,有一个条件就是立节就结束啊,就实在跑不动了,我一步也抬不起来了,对吧,也迈不动了,那这个时候我就不再跑了,那我们这种呢,就是一直重复下去的,对吧,还一直重复下去的那这种循环。我们称之为条件循环啊,条件循环,只要条件为真,说只要我还有劲儿,我能迈出这一步,我就一直坚持跑对吧?啊,那什么时候跑不动了呢?实在没有力气了,然后也迈不动步了,对吧,这时候我就不再。
03:12
这个向下跑下去了,对吧?啊,那像这种形式我们是称之为是Y循环,但实际上啊,我们在扩展一句,在C语言当中或Java当中,在其他语言当中,他们的这种for循环和外循环完全能相互替代啊,就没有什么固定的这个剂次或者是这个这个条件啊,他们都是可以进行相互替代的,没有什么区别啊,只是实现方式不同而已。好,那再回过头来。程序当中的循环是啥样的,那程序当中呢,它的循环啊,我们来看。他去允许去执行或一个语句,或者说一个语句块对吧,多次,那么当重复执行这个语块的时候。我们不需要进行去重复的复制代码来进行去实现了,比如说啊,我现在要打印,呃,打印一个hello word打印5次或者打印50次,那打印50次,那这个时候hello word这条语句我没必要去复制50次,让他进行去顺序的执行,对吧?啊,我通过一个循环就可以搞定,让他循环50次,然后打印这句话是不是就可以了啊,那这种就是程序当中的循环应用场景,那么。
04:20
Python当中提供了for啊,它这个for呢不太严谨,就是for in,就是后面我们学到这种形式,For in循环和for循环两种形式应对不同的场景,那么。无论是哪种循环,它的流程结构都是这样,程序进来之后判断对吧?啊执行这个语句,那在这呢,判断条件之后啊,先执行也可以对吧,先执行,然后呢,判断这个条件,如果是真的就回来继续执行,然后再执行语句,然后判断,判断如果是真的再回来执行,对吧?啊如果是假的时候才继续向下执行,那么这是它的一种判断形式啊,一种判断形式。它的流程图的一个执行形式循环嘛,就是转圈对吧,总结一句话就是转圈,那么。
05:03
程序进入到开始执行的时候呢,它会进到一个判断里面是吧,先进行去判断,后进行判断都可以啊,都可以我们都能实现,那么判断之后呢,如果条件成立,我们就执行一块,那如果条件不成立,我们就不执行这个一块,或者说条件不成立之后呢,就结束了循环对吧?结束了循环,那么在这有一点要说明的是。其他语言当中啊,我们一直在说C2 C2+2+2等等这种条件循环,还包括了这个do well循环啊,Do well就是先去像我们这个流程结构是先去做一些事情,再判断条件,但是在Python当中没有这个玩意儿啊,没有这个东西其实不差那一次两次的,那么他就用一种well循环来进行实现啊,它没有do well循环,这个要注意,Python当中只有两种循环,要么就是well,要么就是for in啊,就是for in,它连for循环都没有,我们把复印叫增强型for循环啊,后面会讲那循环的作用啊,循环的作用。
06:04
主要就是用来提高代码的复用性,减少代码冗余,然后用于便利序列,便利序列便利什么呢?什么字符串,圆组,列表,字典等等,我们前面在讲这些类型的时候就说过,对吧,如何去获取它,那后面我们会专门有一节课啊来讲这个东西那。在这啊,我们说提高代码复用性这个事儿,我们现在通过代码先演示一下,比如说我现在要打印一下啊打印啥呢,打印货给。好,答应后个物资,我现在要给他执行多少次呢?执行1000次对吧,1000次有点多了,我先执行个20次吧,那我在这儿复制对吧?啊,然后粘贴粘贴粘贴啊。在这粘贴啊,让他执行这么多次,好,就执行这么多了,那大家可以看啊,我现在这样去执行是不是能实现,我霍格沃兹打印了多少呢?打印了20多次对吧,还打印20多次,那没毛病,这个段代码其实一点问题都没有。
07:01
它就是一个啥呢,顺序执行的一个结构,对吧,没有任何问题,但是。如果硬挑毛病的话,这段代码写的太重复了,对吧,我们现在只是演示了这样一个功能,对吧?这一句话我们重复20次,那如果我是一段代码呢,对吧?比如说这一段代码,我这一行表示一段,这一段可以是比如说50行,100行,200行代码,那你要执行20遍的话,那你现在这个代码是不是呈指数级就往上爆发增长了,对吧?啊,那它的冗余率就非常高,那为了解决这个问题,我们才用到了循环,就减少代码冗余啊,那么。怎么进行去循环呢?循环一定要有四要素啊,无论什么循环,它一定会构成这四要素,首先第一个点,它要包含的是初始化语句,你要想去循环是吧?啊,一定要有控制它精确循环的一个条件,要初始化给它一个值,比如说我现在要跑10圈啊,操场跑10圈,那初值是多少?你不能从9开始跑对吧?你从9开始跑,跑一圈结束之后就到10了,那你说你跑了10圈,那十际是跑了10圈不是对吧?啊,那一定有一个初始化语句,那初始化到底初始化什么,你是初始化0还是初始化1,还是初始化10,还是初始化9,这都无所谓,那么就看你一会儿跑的时候怎么计数,对吧?啊,那这个。
08:23
初始化条件语句呢,它跟我们的循环条件是挂钩的啊,循环条件挂钩的,那这个循环条件是要素2,比如说我们应该有一个条件控制着我们初始化的这条语句,让它控制初始化的这个语句所初始化的循环变量啊,让它趋近于这个,呃,有一个结束的条件啊,有一个结束的条件那。比如说啊,我们说在这儿我要记数一个N啊,或者圈数,圈数是0,圈数0没跑的就是0,我的条件是我跑够10圈就可以对吧,那圈数就是一个变量,它记了0,那我要跑够10圈是不是就应该往上增加对吧,还要往上增加,那增加的这个事儿其实就是我们的第三个啊,第三个迭代语句就是要素啊,要素4应该是这个啊,要素4迭代语句就每次你执行完这个之后,他要去做一个什么事呢?就做一个让我们的循环变量啊,循环变量就是你初始化判断的一个变量,判断条件当中,这个变量趋近于结束啊,趋近于结束的一个改变。
09:24
比如说我跑完一圈啊,那就人去说圈数加一啊,圈数加1加到10的时候,那条件就说到10了吗?到了那我就不再跑了,对吧?那循环体是什么呢?循环体就是我们真正要去做的重复的这个事,比如说就是跑步,我跑一圈对吧,它就是循环体,那么每一个循环一定要构成这四个要素啊,才可以进去循环,哪怕说它没有显示的有这四个要素,它隐示也一定会实现啊,也一定会实现,那么。这就是循环的四要素,那下面呢,我们来看一下什么是well循环啊,什么是well循环,那well循环呢,其实就是我们Python当中实现循环的一种语法,对吧?解释器遇到well的时候,它就会来进去。
10:12
重复while当中啊,它的语句块代码,那么在这里我们看一下语法结构啊,语法结构那首先写一个while,然后是条件冒号,后面就是它的循环体啊,后面它是循环体,他在这写的时候没有去写出来什么要素4当中的迭代语句对吧,也没有说出这个初始化语句,那么语法当中它的格式是这样,但是循环要构成一定要有这么四个要素,所以说我们在使用循环的时候,需要把它补上啊,需要把它补上。那这是我们的循环,那下面通过实战来看一下啊,通过实战来看一下,首先呢,我们先来看第一个实战要求说求求谁呢?求我们当前1~10之间所有整数的乘积,其实就是一个阶乘10的阶乘,对吧?哎,那么在这里我们呃,直接写吧,啊直接来写吧,先写这个啊,我们先把这个写吧,比如说这个程序啊,先这个输出啊输出输出多少呢?输出比如说这回我们多写个100次,一百次霍多兹。
11:21
啊,输出100次胡格兹,好,那刚才我说20次我复制一下没问题,那100次我复制其实也能实现啊,稍微累一点,有个三两分钟我也复制完了,但是它代码有余率太高,对吧,所以说我们在这DEF啊,先另一个函数,那这个函数呢,就是这个,呃,Loop.呃,Look范个一啊,我们有好多个功能嘛,在这look放放个一,那我说循环100次怎么办呢?我首先有一个技术变量啊,这应该是元素啊,这个这这个循环构成元素。构成元素1啊,构成元素1,这是循环变量初始化。
12:03
初始化好,那我们在这写一下,我说N=1啊,N=1好,然后呢,第二个就是循环。实现循环语语句,然后呢。这个设置。设置。元素2我就不写循环构成元素了,就是写元素2,那么设置条件。这个条件是循环结束条件对吧?啊结束条件好,那在这我们说写个well啊,While是它固定格式条件什么呢?N如果小于等于100啊,那我们就来这儿进行去干什么呢?循环啊,冒号写上循环,然后里边这是元素3啊元素三元素三是什么呢?就是输出。内容啊,复述内容,好,我们在这儿打印一下霍锅子。霍格沃兹。
13:02
好,那为了区分它啊,我们在这打一下这个N,把这个N也打出来,加一个杠杠杠啊,加个杠杠杠,那把这个N打出来,能证明它现在确实是打印了100次啊,其实我们不应该写这个N的,就需求上没有它,那现在呢,我们证明他打印了100次,我在这写上一个N啊,然后呢,第四个要素啊,这个要素,这这是写的要素啊,啊要素4。就是这个要素。啊,要素2设置,然后呢,这个是要素好,然后呢,我们的要素4,要素4干啥呢,让。让循环变量啊,让循环变量趋近于结束。趋近于结束啊,怎么趋近于结束呢?N加等于1对吧?啊,每次让它加一,它就执行一次,累加一次,好,那这样的话,我们来这调用一下,我写个程序的入口,那对吧?啊写一个判断,那这个呢,我们后面会讲啊,这就是程序的一个入口。
14:12
If我们讲过了,但是后面那个man,那刚刚name=man我们没讲过,后面我们讲模块时候会详细讲这个东西,那在这呢,我们就知道,一旦遇到这句话,我们后面就都会写上了啊,从现在开始我们后面就都会写它,那这是程序入口,在这里去执行它啊,在这里执行它,那执行什么呢?执行这个我们当前的这个,呃,Loop fun1好运行一下。运行之后大家可以看它是从一开始对吧,从一开始,然后一直执行执行执行执行执行执行执行了100次对吧?啊执行100次,OK,那这个就是我们well的一个基本使用啊,Well的一个基本使用好,那然后呢,我们来看当前的实战。实战一啊实战一,那实战一呢,我们先去定义一个函数DF,在这写一个loop下划线,这个是三二好,然后呢,我们在这再调用一下这个。
15:12
洛克,放开好,然后呢,下面要去写这个代码,代码我回过头来啊,把这个需求说一下,那这个呢,是求它的阶层,把它粘过来,就是求1~10之间所有整数的乘积,实际上这个就是一乘以啊,应该是这样写啊,我们数学写法1×2,然后乘以乘以3,然后。乘以4啊,点点点点是吧,乘以到10,那现在乘到10,那就是拿着前面的结果保存一直乘到10,那首先呢,我们应该定义这么个变量,首先有个循环变量,对吧,我们这N等于一个1啊,N等于一个一,好然后呢,我们要保存一个结果,要注意在这result=result的初值应该是几呢?这一定要注意啊,Result初值因为是乘法,你要是0。
16:06
那就完蛋了,那最后不用算它就是0,你乘多少它都是0对吧,所以说应该保持初值的话,它都应该是1啊,都应该是1,那这时候来保存结果的,然后Y我们说N现在小于等于10,因为它乘到10嘛,对吧,小于等于10,然后循环当中,我们让result去乘等于N啊乘等于N好,那么N在不断的变化,那现在result从1是不是从1×1×2×3×4×5,对吧?啊。我们在这里面乘完之后呢,每次结果都会放到result里面去,那一会儿我们运行一下看看啊,那在这打印一下这个result值,我们看一下它的一个结果过程,然后呢,在这再进行去,让我们的循环变量增加,那让它加等于1啊加等于1好,那最后啊,最后循环结束之后,我们在这打印一下这个结果啊,这是result吧。
17:02
来打印一下之后,然后打印一下谁的这道好,那么我们现在运行一下看看。走。它打印出是这样一个结果,是这个结果我们看一一的阶乘一乘一,那一就是自己1,对吧?啊,1和2相乘的是2,那1和2相乘之后再乘3是6对吧?那6再乘以3而乘以4,那是24 24×5是120,那一直乘到10就是这样的一个数字,对吧?那这个过程是对的对吧?还是过程对的,那要注意的是,刚才我说了这个啊,一定要是1,它不能是0,如果是0就不用算了。它永远都是0对吧,因为0乘任何数都是0嘛,但如果是累加的话,比如说这个题我们改成累加的话,那这个现在就得是0了,对吧,比如说这是改成加法,那这个现在就得是0,因为它加的时候不能有原来的指数吧,出值必须是干净的啊,所以说加和乘大家要注意啊,它的写法我们撤销回来,那这个题呢,还可以稍微稍微优化一下,在这我们result已经是1了,对吧,那我现在。
18:08
没有必要说在这里再一乘一得一还是一嘛,那你这个N初值就可以从2来开始,对吧,它初值不一定非得从0或从一开始,随便从什么都可以对吧?那所以说我们先从10开始乘,乘到1也没问题,对吧?啊,所以说在这从2开始,那直接就让它一乘二。那家可以看直接就是1×2,那得22再乘3得6 3,这个6再乘以4得24 24再乘5=120 120再乘以6是不是等于七百二对吧?然后再乘7×8×9×10,那最后的结果就是这个结果啊,最后结果好,那这是我们第一个实战10的阶乘啊,像这种就是非常经典的我们使用循环来解决的一个问题啊好,那我们下面再看第二个实战。第二实战呢,说输入一个密码啊,输入一个密码,然后直到密码输入正确呢,我们才这个输出登录成功啊,输出登录成功,好,那么在这呢,我们去写一下,这是10张2。
19:12
然后呢,写一下它好,然后呢,我们定义一个函数df df loop下划线,这个是范三啊,那么在这呢,我们定义一个,首先呢,在这里先定一个啊先先不用定义啊,我们把这个调用先写上LOOK3先定义。定义一个啊,一个原始密码啊,原来呢,就是这个原始的密码,正确密码,我叫正确密码。啊密码,那比如说这块有一个password啊,等于等于啥呢,我们就叫霍格沃兹。啊,回过好,然后呢,在这再让他定义一个用来输入的密码,对吧,就是你登录输入的密码,那么这个输入密码呢,我们叫input password.
20:05
好等于等于啥呢?等于一个input直接输入就行了,Input,然后请输入一个密码对吧?啊,请输入一个密码,好,那输入完了之后我们要循环,因为你现在输入完了之后,你怎么得判断一下嘛,对吧?哎,他如果说什么情况下登录成功呢?那我们在这最后写一下print登录成功。啊,什么情况下登录成功呢?那登录成功这个事必须是两个密码都一样对吧,那我们在这儿,如果说在这儿我们写个if是吧,因为if我们也学过了分支语句对吧?如果是input password等于我们的password的话,那么你现在是不是就登录成功了,对吧?来登录成功,那我们运行一下这个程序运行你看现在输入个密码,我输入个AA。啊,那这个呢,现在就没有任何效果,因为我没写否则什么情况对吧?啊没写否则什么情况,那我再运行一下,它也就执行一次,我必须下次再运行,他才能让我再输入一次密码,对吧?那这个显然不符合我们的要求,他说直到输入正确,那有时候用if不太合适,对吧?那怎么办呢?我们说在这我们用一个well well,其实有当的意思啊,当当什么呢?当我这个input这个密码啊,不等于在这不能写等于了,如果说当它不等于的时候啊,不等于password,不等于password,你怎么办?就你上次输入的不对,对吧,那不对,我就让你再输入一遍。
21:36
哎,在这再数一遍。这能力容我们的条件不是一成不变的,里面内容也不是一成不变的,这个小思路有点稍稍开放一些啊,稍稍开放一些好,下面代码无关啊,我们先不看下面的,就看着说当,当什么呢?Well,就是当的意思,对吧?当输入的密码不等于正确密码的时候,那你不等于还想啥呢,那肯定再来一次啊,对吧?哎,那我们就紧接着里面再输入一次密码,那输入完了之后,诶。
22:06
就。干什么?回来继续判断啊,回来继续判断,其实这个输入的过程就是我们要素,要素4就是趋,改变这个循环变量,它趋近于结束的一个条件,它结合到了我们的循环体当中,有的同学可能说老师你这个就没有这个要素4是吧,改变这个让循环变量趋近于结束的这个这个变化这段代码其实输入的过程就是让它在趋近于结束,什么时候结束,它俩相等不就结束了吗?我不满足条件才会进来执行它,那当我它让它相等的时候,是不是就满足条件了,对吧?如果它等于它,那等于它,那么这个时候这个条件不成立,它就不再循环了,那么那这时候输入的内容是不是就在让它趋近于结束啊?好,那么我们在这儿说输入一个数据之后,然后回来判断,如果它俩还是不等不等不相同,那么它是处值就进来继续输入,不相等就是处值输入不相等数值输入对吧?哎,那么什么时候呢?等的到它这个相等的时候,它就不满足条件了啊,一旦相同了就不满足条件了,那这个时候我们就不再执行它,而出来,出来之后就让打印登录成功就OK了啊打印登录成功,那把这个空行去掉,好在这儿打印成功,那我们试一下是不是这样运行。
23:27
在这啊,我们多写点,比如说ABC是吧,ABC那A在这。我输入这么多次他都没成功,那我现在输入个正确的,我说霍格沃兹好,那这时候登录成功程序退出对吧,那这种呢,它就是个条件循环的典型例子,它不是个剂次的,我具体输入多少次不确定什么时候比较成功了是吧?哎,他才能进行去这个嗯,才能进行去结束我们的循环,对吧,才能结束我们的循环,那么。在这儿我们还可以把这个题目稍稍改一下啊,稍稍改一下,比如说三次之后啊,我就不让你进再输入了,那这个怎么办呢。
24:08
那这个怎么办?对吧?啊,这个怎么办?那像这个题目啊,我们就留给大家作为课后练习,大家去练习一下,把这个题目修改一下,结合我们前面学过的分支语句,那判断一下,如果你输入了三次错误密码,就直接告诉他你这个用户密码输入三次啊,都是错误的,那不让登录了是吧?如果登录三次之内输入成功啊,那就登录成功对吧?好,那这是我们的实战2,那再来看一下实战三。3比较有意思啊,3比较有意思,那在这儿呢,我们再写一下。这是实战实战3,那实战3呢。是说在这儿呢,我们有一个醒酒令啊,就是很多人啊,在喝酒的时候爱玩一个游戏啊,醒酒令叫一个暑期小游戏啊,什么意思呢?我们先来看这游戏参与者围成一圈啊,依次报数,但需要跳过所有包括7或者7的整数倍的数字啊,就是你这个里面包含7的或7的整数倍的都不行,那写出1~100之内,我们编写程序,找出来这1~100范围内所有符合数字条件的这个数字,对吧?你把这个数背下来,下次玩游戏的时候百战百胜啊,百战百胜好,那我们先把函数定义一下DF啊,然后在这写个luop luop下线范4了啊是好,然后呢,我们在写完之后调用一下这个函数。
25:38
路跑。4啊,那现在写完之后呢,我们还得再回来啊,再解释一下这个这个什么意思呢?我把具体值先写几个,比如说7的倍数,什么是7的倍数,对吧?哎,像7能被整除的就是7的倍数74 21。三七三四八三十二是吧,二四四四七二十八啊28就是数学不太好啊,那这些它都是7的倍数值对吧,后面还有我就不写了,那还有什么值呢?比如说十七二十七对吧?哎,然后呢,70~79。
26:17
79,像这些包含7的,它都是符合这里的数字的,当然啊,每个酒桌上玩的游戏的这个规则不太一样,有的可能不包含这种,那只是求倍数,那有的呢,可能就要求它不光是倍数,还得是包含7的,你像27这个数值,它就不能被谁呢?它就不能被这个7整除,但是它包含7,那也不行,对吧?因为27和28这种数连着,那么有人喊过26之后呢,像这种包含7带这种规则的,这比较好玩,对吧?因为你要连着空着两位,27不能数28,不能数29啊是吧?下一个人到,到下一个人的时候,到第三个人的时候,他能不能数出29来呢?这就很刺激了,对吧?哎,那这是它的一个简单游戏规则,那我们如何来进于实现来看,首先我们说定义一个循环变量N=1啊,N=1,然后呢,我们在这well well说N呢,小于等于100,小于等于100,它就是可以循环的,就是在这个范围内,对吧,因为我。
27:18
我们从这个范围内找出来1~100范围内找出所有的这个7这个数嘛,那现在关键问题来了。我们怎么能找出7的倍数,怎么能又找出这个数字包含7呢?对吧?这是两个条件,好,那么7的倍数,那我们先来写一下,这是7的倍数,7的倍数呢?这可以通过谁呢?我们可以通过非常简单,通过这个符号来实现啊,通过这个符号来实现这是什么?这叫求模运算符对吧?啊,我们判断一下,如果它求模的时候余数为0,是不是就说明。余数为0。求模时余数为0,说明被什么整除?
28:05
整除,那被整除了就是倍数倍数对吧?啊,这是第一个条件,第二个条件,这个包含其。啊,包含期,那怎么是包含期呢?包含期这个事儿,哎呀,怎么能包含期,我们得好好想一想,这个这个怎么实现。看看大家想一下有没有思路。如何能包含其?哎,其实也很简单,我们之前学过这样一个运算符叫印,对吧?啊叫in in叫成员运算符,成员运算符是什么呢?说我们当前某一个。字符在不在一个目标字符内,对吧,它可以是字符串,可以是原组,可以是列表,甚至可以字典都可以用这个符号印,但是问题是我们这个是个数字呀。数字怎么印对吧?啊,数字是没法印的,那这时候它不光要用印,还要去结合一个string这个什么呢?这个我们也讲过,这个叫强制类型转换,我可以把数字转换成字符串嘛,对吧,我们又不用这些数字计算,我只是用来判断一下,所以说给它转换一下就可以啊好,那么在这转换之后,如果啊。
29:24
如果如果什么呢?如果这个数值啊数值。数字在转换后的。结果中啊,如果在这个结果中说明包含对吧,还说明包含好了,那我们在这就把它这样。If条件条件谁呢?条件现在是N取7,如果等于0的话啊,等于0的话,那么它现在就是符合条件了,这是一个条件,还有第二个条件,或者啊或者或者什么呢?或者说N印啊印。
30:01
印谁呢?印这个。那或者7啊,在这儿不是N,是77IN,然后string n.哎,好,这是两个条件,注意看啊,前面这是第一个条件,然后这个呢是第二个条件啊,这是第二个条件,就是7这个数字字符存在于我转换后的这个数字里边,那它又是符合的,那我们中间用一个逻辑运算符哦来进行去匹配了这个关联了这两个条件,组合了这两个条件,这两个条件任意返回一个。都可以,就任意满足一个都可以对吧?那问题在这儿呢,我要多说一句,这里面有数学运算符有关系,比较运算符,有逻辑运算符,还有成员运算符,他们谁优先级高了呢,是吧?哎。这块你一定要保证啊,你的书写顺序是顺这个正确的,其实按照我们的书写逻辑啊,就已经能把它算出来了,肯定是这玩意儿高先算对吧,还先算,算完了之后呢,再跟他进行去比较对吧,还跟他进行比较,比较出一个布尔值,结果他成立嘛,或者它是最低的对吧?啊或者啥呢,它先算这个括号的括号完了之后呢,算in就是7在这里面嘛,它也得出一个布尔值,如果它俩有一个为真对吧,如果它俩有一个为真,那么就是为真对吧,如果两个都为假,那才为假。
31:25
这就是它运算符,如果说你这个运算符弄不清,那你就拿括号给它们包起来,对吧,把它包起来一下,然后把它包起来一下就OK了,好,那我们在这就不包裹了啊,那如果说条件满足了,我们在这打印,打印啥呢?打印这个N值就可以了啊,打印这N值就可以了,好,那么注意还要最后在这让N加等于加等于1,因为你要让这个N趋进于结束,如果没有这个N的话啊,你忘了这句,那对不起,很容易程序就进入了一种叫做死循环的状态啊,它就无限循环进去了,我们先把它注释掉,然后运行一下看看。
32:02
看程序就无限循环下去了,对吧,为啥呢,这块你说没有无限循环啊,因为这个地方啊,它现在没有符合条件啊,没有符合条件我们把程序结束,然后呢,我给它改成7,你看一下。改成7,因为7就符合条件了嘛,7÷7是不是取于0,就是整除了,它就会打印这个值了,你看啊,它就会一直打印7对吧,你看一直在闪,你看我这面的这个这个进度条,它一直在往下走,为啥就一直在打印啊,因为一直是七没有变过,所以说在这一定要让我们的循环变量精确趋近于结数的一个变化,那刚开始是1对吧,哎,刚开始1,那一呢,加123456,一直加到100是吧,到了101之后,它就不再小于等于100,它就要退出了,那我们再运行一下。大家可以看一下在这啊,七十四十七二十一,二十七二十八三十五是吧,五七三十五,37 42,六七四十二,47 49,七七四十九,然后七八五十六,五十七,63,六十三是多少。
33:06
啊啊,67这个肯定是倍数了嘛,是吧?呃,然后呢,这个六十七七十啊,从70开始,七十七一七二七三,一直到79是吧,都是包含的,那这个呢,现在就是我们这个7的倍数,你把这些数字记下来是吧,下次再和朋友们去喝酒玩游戏的时候,你就主张玩这个游戏是吧,就再也不用怕了,不用慌了,就把这些数背了就行,到这个数不用数是吧?好,那么通过这么三个实战小练习啊,我们去把Y循环呢进行去让大家去充分的去理解了一下,那么我们简单总结一下。外要循环啊,在这里面呢,循环的目的作用主要是用来实现代码的复用啊,减少我们代码的冗余,然后呢,每个循环,无论哪个循环,它都有4个要素,这要素1就是循环变量初始化,要素2是循环条件,那么要素3呢就是它的循环的内容,就是我们要减少复用代码的一个呃内容,然后要素4是让我们的循环条件就趋近于结束的改变,那么外循环是我们Python当中。
34:14
提供的一种循环方式,遇到V的时候它就会去循环,我们可以把它直译过来是。那变成当当什么呢?当条件成立我就循环对吧?哎,当条件成立我循环,当条件不成立的时候,我就不再循环了啊,这是while的一个语法,然后我们通过几个小练习啊,让大家去了解了我们这个while的使用,那大家呢,可以把这几个练习来实现一下,然后再把我在实现实战2的时候啊,那个要求啊,大家在课后的时候去做一下啊,那关于我们的well循环啊,我们就讲到这里,我们下节课再见。
我来说两句