好兄弟们, if 是 什么语句?是我们的分支结构,也就是说你可以往上走, 是不是我们的选择结构呀?选择结构也叫分支结构。好,我们刚才讲到了 if, 紧接着我们再来看第二种格式,叫 if else。 if else 什么意思呢?如果,然后呢?否则,如果啊,不满足就,否则我还是喜欢。不要用不满足了,否则 如果,否则就说,你要么成立我怎么样?否则我不成立我就怎么样。好理解吧,你看这个语法,还是截了一张图给你看。 if 条件表达是一条执行语句,执行体一,然后 else 执行体二。你看啊,这里呢,就会分成两条路走,这两条路啊,我通过一个图给大家去展示了出来。看,这里, 首先呢,它走着走着,在这个位置呢,它就要分成两条路了。第一条路啊,它叫猝,你猝我就走直行体一,能看到吧,那如果你是 force 呢?哎, force 我 就走直行体二。 好,那相信大家能够理解理解。以后呢,我们再做一个练习,这个练习也挺好玩的,输入你儿子的成绩,如果及格,你就奖励他,否则怎么样?打死他,打死他。有跟我说,你这是不是太狠了 啊,不狠一点,他怎么能有出息嘞。好, test 十二,还没有,咋办?什么没有咋办?来,先跟着我的思路走, 这个时候我要做的是 if else, 然后大家怎么去翻译呢?没有 else 怎么办?没有 else 就 继续往下执行呗。这还不理,这还不能够理解吗?你看,我们刚才不就是没有 else 吗?没有 else 就 继续往下执行呗。 好,先跟着我思路走啊。 if else, 你 怎么翻译呢?你就翻译成如果什么什么,否则怎么怎么样? 好,现在我的需求是什么?呃,如果你你儿子成绩有,哥们说我没有儿子。别纠结,你以后肯定会有儿子的。如果你儿子成绩及格了,就奖励他。 那否则怎么样呢?否则打死他。当然啊,你下手,下手不要太狠啊。好,这个时候我输了一个 score。 那当然你要把它转成 into 类型啊。这个是这个,我们之前练过很多次了。请请输入你儿子的成绩。好,这个时候你就要做判断了, 我们可以把它叫做逻辑判断,逻辑判断就 if, 然后 else。 好, f 怎么样?你儿子的成绩 f score 大 于等于六十,是不是意味着你儿子成绩就及格了?成绩及格了,没错吧?那及格了怎么办? 及格了就奖励它。好啊,奖励了,奖励了,你儿子一辆。 一辆什么呢? b m b m w。 别摸我别摸我。呵,当然。呃,你可以奖励很多啊你可你可以奖励一辆什么来着? b m w, 然后再奖励一辆大奔,对吧?大奔? 奔,哪个奔?这个奔,然后再奖励一个兰博基尼,对吧?兰博基尼好,你家有钱无所谓。紧接着 els, 大家看 else, 它自动就会缩到里面去了。好,我们叔叔,你儿子被打死了还钻戒,还叫你喜欢玩机车呀,你儿子被打死了。 ok, 好 啊,再生一个吧。 唉,再生一个吧。好吧,大家看我为什么写两句?我就是想告诉你,写两句 也是跟他是一起的,你写三句也跟他是一起的,对吧?你写十句也是,你写一句也是。所以呢,我后面还得给你写一个程序结束,让你知道程序跑到这里就结束了。好,那这个时候我直接开始运行了,我们一起来观察效果了,请输入,你儿子成绩 很笨,瞧你儿子就这么没出息,考了个五十九,英语成绩啊,那五十九,大家告诉我,五十九是进进进这里呢还是进这里呢?进一呢还是进二呢? 一还是二二。对,没错,那我一回车,你儿子命运就没了,你看你儿子被打死了,再生一个吧,程序结束了。好,那这个时候我输六十,大家想六十是不是进到这里来了? 记住,你记住啥呀?啊,我这样跟你说,你看这一段啊, 哎呀,这个图又变小了,稍等,我拉大一点啊,不然的话,你们看你们的眼睛要往下看才能看到,你不能看中间放到这。首先大家一定要知道 if, else 它是一个整体,能不能听懂啊?整体? 这有哥们说你老是强调它这个整体干啥呀?这是一个整体,那我要为什么要强调它呢?我强调的是要么 if 执行,要么 else 执行, 要么 if 被执行,那么要么 else 被执行。那我想问一下大家,请问有没有一种情况, if 跟 else 都会被执行,或者都不被执行? 思考一个问题,大家一起思考第一个,有没有可能 if 和 else 都被执行, 有没有可能都不被执行?理解我的意思吧, 就是说有没有可能 if 跟 else 都会被执行,那有没有可能 if 跟 else 都不被执行?这两种情况有没有可能类型不匹配啊?不要纠结啊,类型不匹配那不是我们 if else 的 事情, 那是你输入端本身就没有处理这个事情啊,对,不可能,你就记住三个字,不可能, 能理解吧,我把这个字放给你,放到最大啊,不可能,也就是说你不管怎么样,要么衣服被执行,要么袄子执行,必须有一条被执行。好吧,再强调不为过了啊。 好的,那这个时候,哎,我程序到哪里?到六十了,对吧?六十分,六十分我又回车,你会发现你看你家真的很有钱,你奖励了你儿子一辆,别摸,我 又奖励了一辆大奔,又奖励兰博基尼,还有哥们玩机车,嘿,奖励一辆机车,对吧?好,那这个时候我讲到这里了,我再给大家演示一下。演示什么?你就看一下程序怎么走的,我在这里打了个断点对不对? 然后呢?我的 bug 运行啊,兄弟们,你们去刚开始去用的 bug 的 时候,你一定要记住,你先打断点再选择的 bug 啊,你不要选择上面乱啊,选的 bug, 好 吧,好,右键 bug, 程序到这里了,哎,还没到这里,程序到让我输入了,那这个时候我输五十九,你们看啊,我输五十九,很显然这个条件肯定不成立。那不成立,他去去 if 里面,还去 else 里面呢,我们往下走一个, 哎,我程序跑哪去了哦,还没回车,回车,大家看,我回车了,他进 if 还进 else 呀, 无法连接调试器。呃,兄弟们,先这样子,我写代码的时候,讲课的时候你先不要玩你那个,呃,一克里,呃,别玩你那个拍拍叉码,你就跟着我的思路走。 好,你看他,我输的是五十九,大家能看到啊,怎么看呢? 你看这里 score 是 不是五十九呀,而且我这个 score 是 不是英特类型啊,所以不会出现什么呃,类型类型不匹配的不正确的问题啊。好,五十九,那五十九肯定不成立,那不成立就进 else, 然后你看我往下,兄弟们, 我告诉你,我要点什么按钮啊,你大概知道就可以了。我要点向下了啊,也就说我只要点向下,去到哪了?去到 else, 而且 else 里面有两句,是不是呀?你看两句再直行出来了, 结束了,程序结束了,程序结束以后,你看你的空台,儿子被打死了,再生一个,对吧?哪有那么好生呀,哈哈,好吧啊,另外一个,大家都还没结婚,怎么就是生儿子了,男人又不会生儿子。哈哈,一样的啊,我也没结婚, 大家都是啊,都是单身,都是光棍。好,我们再来一次啊, uki 啊,第八个,第八个, 好,这一次我要做什么大家肯定知道,我这次要让他成立,我输六十。六十是不是就成立了?六十大于等于六十吗?等于六十,那就成立成立,你看他进哪去啊?我按向下, 呃,我还得先回车,我不回车,他不,他还以为我没输完,我回车。好,这个时候我向下,大家看,进到 if 里面去了, 没问题吧?进到 if 语句了,进去了,走,走,你看,三句话被输出了,你看 else 里面不走了啊,兄弟们, else 里面不走了,直接进到这里来了,等会就会进到这里来了,然后我再走,你看 你儿子被打死了,再生一个吧。这句话是不是没有被执行呀?好,我再走。程序结束了,看一下控制台, 你看奖,奖励了你儿子一辆。呃,宝马大奔兰博基尼,程序结束 对吧?所以说你不管怎么样, if 跟 else 一 一定有一个被执行的,一定有一个。好,我不强调了,再强调的话我觉得有点过分了。好,关于 if else 第二种格式就给大家讲解到这里。
粉丝292获赞1462

警告,本视频耗时六个月,制作共计两百一十小时,四十分钟,一口气教你学习拍摄核心,从基础到进阶,全套教学视频共两百集。声明,本教程仅供学习,严禁用于违法用途。所有教学视频都放在主页资料群了,需要的朋友即可领取。 呃,我还是简单说一下啊,像这个 pdf 怕同学们呢就是,呃,文件呢,是发给同学们了,但是呢,觉得这个内容比较多,对吧,又不想去看,所以我还是给你们去简单介绍一下这个文档 啊。这个训练操作讲解的话,是在上几个下个周呢,就是以群发的一个形式啊,发到每个同学的专属群当中了,那么同学们呢,可以去看一下啊,就这个,呃, 老师把所有的这个函数给他汇总集合在一起啊,这个文档那是以代码啊,结合 注视的形式给到同学们的,那像列表他的核心操作增删改长啊,哎,就是会以代码的形式呢,全部进行了解释说明,咱们可以去哎,根据,对吧这个函数怎么去用的?比如说,哎,在我们课堂上有去讲到的 这个查询可以通过下标,正下标负下标,或者说所以都可以,对吧?啊,还有我们没有去学到的,像我们这个 count, 这个 count 的 话,哎,它是用于去统计 列表当中某个数据出现的次数的,虽然说老师上课没有讲,其实它还是比较简单,将我们这个数据二给它放到小画当中去统计既, 哎,统计计数一下这个数据二出现的次数,那它是不是只出现一次,那最终得到一个结果就是一,它就是统计元素出现的次数的,还是比较好去理解,同学们就是运行加代码就能够知道这个函数怎么去用的啊, 再包括呢,就是说增加,增加,我们上课呢是只讲了这个 app, 对 吧?去从末尾添加函数,还有一个呢,就是指定下标去添加 x 数据进去,那除此以外呢,还有一个啊,这这一些添加函数就比较杂了,同学们呢,就是可以去看一下,对吧? 它各种各样的一些添加呀,修改呀,以及删除,删除呢,它有四种方式啊,像我们这个 remove 以外呢,还有这个 pop 啊,还有这个 d, e, l 或者说 clean, 可以 去进行删除。那不同的删除方式它是怎么去用的?包括哎,这个清空列表的使用,对吧?它其实并没有说哎,直接把这个列表进行删除,只是说把里面的这个数据进行清空,它里面就哎所有数据没了,列表它本质还是在的啊。 还有就是我们没用接触过的像哎,列表里面的数据还可以去进行排序,正序排序,哎,就是升序啊,或者降序啊,也是可以的,会去用到相关的函数,大家可以去练习一下啊。好,还有就是字典,字典呢,它里面用的这个 函数比较少,它主要就是用以键取值的方式,对吧?查询呢,也是通过以键取值, 哎,这个修改呢,也是以减取值或者增加呀,都是的,是不是删除呢?也是同样如此啊, 那也会去用到一些用来去进行获取的啊函数,你比如说,哎,这个 c o p y, 这个是拷贝函数,可以把原来的这个字典呢进行前拷贝啊,就是前拷贝复制的一个操作啊, 好,原组,原组,这个就不用多说了,他只能去进行查询,查询的一些方式是不是跟那个列表差不太多,我们就简单过一下。 好,集合集合,这里稍微大一嘴啊,我们集合上节课是讲到了他一些什么,哎,集合运算行为,像交集、并集、差集以及对称差集等等的啊,他会用到的一些符号,咱们可以看一下他怎样去进行计算的,是不是? 那除此以外呢?哎,其实集合它会有它的一个增删改,这个既的老师是没有给你们去讲的,那它的一个使用方式 很简单,同学们可以去看一下,你比如说增加,对吧?它用到的是 a 的, 它要增加哪个数据,它就,哎,使用 a 的 将这个数据放进去,那这个数据四就会被添加在集合当中,哎,这个就是增加,大家就是记一下这个 a 的 它的一个使用和这个 remove 也是可以去 进行删除的啊。那之所以老师上节课是没有讲,确实是因为咱们这个集合呢,哎,他用于去进行 数据的增删查的话,用的会非常少,一般呢,我们是选用到的是这个列表或是字典去做了,哎,如果涉及到集合计算时,哎,可能才会去考虑,哎,使用集合去存储数据啊,因为他确实有一个去除重复这个特性, 考虑这个特性的话,存储到集合当中的一个可能性就会少很多的。还有最后呢,就有个核心对比总结,大家可以去看一下。这里有去涉及到啊,就是每一种数据它是可变的还是不可变的,对吧?都有去进行标记,当然等会老师也会给你们去讲一下的。 好,这个就是这个文档啊,我们要知道,哎,它里面内容是什么,怎样去看,如果觉得很杂的话,哎,老师还有一个 png 的 一个思维导图,大家就是通过这个 这个思维导图去定位到啊,就每个函数,每个列表类型,他有哪些函数字典,有什么操作等等的啊,然后通过那个呃文档你再详细的去查找一下啊,大概就是这样子去使用咱们的一个呃文件。 好,那么呃资料是给到同学们了啊,同学们一定要把这一些资料,老师,哎,花了心思,花了时间的这一些资料呢,用起来,一定要用起来啊。好啊,那么紧接着呢,我们还是看一下作业,作业,作业呢是讲到了序列, 呃,这几次的这个作业完成率还是非常高的啊,咱们班的这个,呃学习积极性,我发现啊,就是比以往的班级都要高很多,这个作业呢,哎,不管呢,就是,哎,咱们呢就是完成的 快呀,或者说慢啊,你这个作业的一个完成率还是有的啊,呃,基本上是保持在百分之八十左右算已经非常不错了啊, 啊,虽然说我原本以为应该是在百分之七十左右后面,呃,今天,呃,不是七,呃,五点钟休息之后,哎,到了这个六点半之后呢,很多同学就在这个时间点就提交了作业, 大概是看了差不多是呃,二十分的样子啊,就大家就卡在这个点提交了啊,只要交上来的话就很不错的啊。 好,那么来我们来看一下这一次题目呢,既有单选又有编程题,还有选作题啊,准备根据自己的这个呃,选作情况自己去看一下。好,那么选择题呢?这老师要给我们去讲一下啊,在布置作业的时候呢, 哎,这个 abc 啊,这个是一个 c, 当时手快了,打错了,给它打成一个 a 了,所以呢,这道题的话,标准答案应该是选哪个?应该是选 a 的, 是不是? 嗯,有的同学是选 c 的, 有的同学是选 d 的, 那我有,我有当时指出你的问题也有没有指出的啊?因为确实这道题呢是存在歧义的啊。 啊,当时是讲到字典,他的一个 k 是 不能出呃,出现冲突的情况嘛,是不是?那实际上呢,确实是可以写两个 a, 写两个 a, 那错误的问题体现在哪里呢?就是我们后续通过 a 去经取值的时候,这里的话就得去纠结到底取的是一还是三,那就是出现了取值错误的一个问题啊,所以这道题呢,哎,咱们能选的话,咱们尽量尽量的去选个 a 或者说 c, 那 选 b 或者 d 的 话,那肯定是不行的,对吧?好, 来,我们再讲回来了啊。哎,是出现了卡顿问题吗? 断断续续的话是卡顿情况啊,如果说是断断续续的话,可能是,哎,卡顿了,重进一下,重进一下啊,或者说调整一下网络。好吧, 好,那么来看一下第一题啊。第一题,第一题的话,咱们选的是哪一?哪一个?这第一题我们选的是哪个?第一题说实话,他的难度还是有的啊,咱们可能错的最多的就是第一题了。第一题咱们选的是哪一个? 这个 d 选项啊,是下标为二,从这个列表去获取数据时,他说会获获取一个空值。哎,有的同学这个 d 选项没有搞明白啊,这道题选什么选什么,这道题是选那个 选 b 吧。啊,选 b, 是 不是 a 选项是错的啊?我们看一下它是说的是怎样的一个错误,列表的下标只能从零开始去取值,不能反向, 哎,这个是错的啊啊,只要是下标下标能用的话,那他就是正向啊,负向啊,都可以。哎,不管是用在字母串或者说列表原组当中都是可以的啊,只要能用,所有的操作都能用起来。好,那么 c 列表下标越界不会报错,试过的同学都知道啊,会报错的是不是?那下标为二,这里是零,这里是一。下标为二,应该是超出取值应该会报错的,而不是返回空值,对吧?啊,列表也是不例外的啊,会报错,所以这道题呢,是选 b 的 是不是? 好,第二题,第二题,第一题选 b 啊,可能答错的错的最多的就是这道题了。好,再来看一下第二题,第二题,第二题呢,毋庸置疑,咱们是选哪个? l 列表添加一个数据之后呢?再添加一个数据之后呢?这里就是注意一下,下标为一, 这是零,这是一,所以五十五应该排在第二个位置上,那毫无疑问了,只有 a 选项是放在第二个位置上的,是不是 ok 选 a 啊,其他的都是错的啊。 好,那么来第三题,第三题是选 c 啊, c 操作错误的是什么呢?直接把 c 挑出来,咱们这个字典呢,是无序的,它是不支持下标取值操作。哎,只能通过键去取值啊,要么是 name, 要么是 age 去进行取值,是不是 啊?你看其他的都是一键取值,就它不一样,所以选 c。 第四题是选 d 啊,第四题是选 d。 原组一旦定义,其他的无法修改啊,它是一个不可变的,那其他都是错的,错在哪里呢?原组支持添加函数去添加数据 啊,这个应该是列表了,是不是原组这个十,这个数据表示存储一个数据值,原组在存储一个数据值的时候必须加上一个逗号啊。这个呢,小细节不要忘记了, c 原组支持下标取值,但是不支持欺骗 都支持的。一般情况支持下标就会支持切片啊,这个下标和切片取决于他这个数据到底是有序的还是无序的。那只要有序,那两个都支持了,所以选 d 啊。第五题选哪一个? 第五题的话,错的不多啊。错的不多。打印 s 的 情况, s 是 个集合,它会去重嘛,所以,所以最后呢,我们要么是选 a, 要么是选 b 啊,你不可能就是打印出来,他的这个数据类型就发生变化了,是不是啊?所以去重之后的结果,那肯定是个 b 了 啊。好,哎,第六题就不多说了,肯定是选 a 的, 那我们就直接来到第七题啊。直接来到第七题。第七题下列的数据类型转换结果正确的是, 这道题呢,稍微有点歧义,是同学们在做的时候没有注意到这四个字。固定顺序就是你像我们在哎这个 列表函数里面呢,放一个集合,这个集合他在转换之前就会有一个啊,无序的效果,你,你可能在运行的时候,对吧,就是一二三这三个数据在运行的时候,哎,这个,呃,无序,打乱顺序的, 哎,结果没有体现出来,是因为这个数据太单一了,不多,这个数据不多,如果说,哎,这个数据有五个啊,五十个,那这个数顺序呢?哎,绝对不是你看到的这样子的啊,所以呢啊,他这里会打乱顺序,然后转换之后呢,哎,他这个结果肯定也是会啊,打乱的 好,哎,所以这个 a 呢,咱们是不选的,正确答案应该是选 b 啊,将这个中括号转换成小括号,只需要一个圆组 类型的函数转换函数即可,其他的都不行啊,你像是 set, 它是集合类型,哎,这个是个原组,是不是?这个是个什么呢?这个是一个列表类型哎,这是个集合,所以它用到的 转换函数和转出来的类型呢,它不一致,一致的情况下我们才选,所以选 b 这一题呢,是选 c 啊,这个是上课有去另行过的一个程序,但是呢,还有部分同学呢,是选错了,哎,要么是选 b 去了啊, 哎,统一都选的是 b 啊,这个要注意一下,主体 s 三减掉 s 四,那 s 三是主体是 s 三里面有的, s 四没有的,所以选 c 是 十和二十码。这道题呢,是直接公布答案的啊。嗯,好了,那么咱们的一个呃, 选择题就差不多了,直接编成题来拷问一下选择题有没有问题,还要不要再讲一下来,没有问题的话,来给老师扣一个二,咱们就过掉了。有问题的话,把这个问题的题号跟老师说一下啊,咱们选择题有没有问题,有问题把问题提出来,把 选择序号告诉老师哈,没有问题了,给老师走一个二,看一下能不能理解是在上课之前的这个疑问有没有搞清楚啊? 好,那公布一下答案,咱们的一个答案呢,是 b, c, a, d 没错吧?看一下 b, a, c, d 啊, b, c, b, c, b, 第六题,可以选 a, 也可以选 c 啊,第七题是吗?第七题,看一下 第七题,第七题的话,你答案是哪一个呢?第七题的话是 c、 d, 肯定是不选的,你 a、 b 当中纠结一个啊,有的同学是选 a 的, 老师也算你?对 啊,因为正常来说确实能够去转换成列表,你没有看到这个顺序的话,算了算了啊,就是也是算你是对的 这个地方吗?这个地方,它这道题,这个 a 选项之所以是错,因为它是一个集合类型,集合类型, b a c b c b a c b c, 这个是选,这个是选不选 b 啊。第六题,它不选 b。 第三题,为什么是 c? 第三题,为什么是 c? 你 选的是哪个呢?因为下字典他是不支持下标的,所以通过下标为零去进取值的话,他就会报错,会出错。其他的呢?是以键取值的方式,这个是查询吗?这个是 添加一个键值对吗?这个是删除吗?都是合理的啊,只有 c 他 是会直接出现错问题的啊,好,那么就过掉了啊,好,编程题,编程题完全是对于咱们上课的这个知识点的回顾, 咱们呢,就是上课有认真听的,这个编程题绝对是没有问题的啊,一般呢,就是那个啊,选择题会有问题啊,出现这个概念性概念理解错误的问题。编程题这一块呢,基本上都是标准答案啊,说明同学们这个课堂掌握还是非常不错的。 好,那么来看一下咱们第一题,第一题啊,我们需要定一个列表呢,它是长这样子的,直接给他去拷贝过来,那需要完成以下操作,第一呢就是删除它里面的这个所有的数字,所有数字呢, 为八的啊,数字为八的,它是有两个的啊,这里呢可以使用两种方式,第一呢就是去使用 l 去打点调用删除函数,叫什么? 那个 r e m o v e 删除函数,对吧?移除,移除的意思,把这个八呢给它直接丢进去,那当这个列表调用一次 删除,哎,就把这个八删除一次呢,就把这个八也给它删除,反正就是掉了两次,给它删除两个八。最终我们在打印 l 的 时候呢,哎,咱们建一个列表 来看一下,这个列表呢,他那个数字八是不是就没有了,是不是? ok, 好, 那么这呢就是第一种方式啊,直接就是啊, 比较直接的一种方式,使用两次啊,删除函数,那有的人就是在纠结,老师万一有二十个呢,这只只有两个,对吧? 嗯,那这里的话要去结合我们在下下节课用到的循环了,对,用循环去判断。哎,我们要删的这个数据它是不是八,只要这个数据是个八,哎,我就给他删了啊, 要用循环去删了,就暂时咱们还做不了啊,我们就啊用这个比较直接的办法删一下就可以了啊,这道题呢,就这样子了啊, b b 选项, b 选项的话啊, d 二题在末尾去追加一个数字,十追加函数啊,它是说在末尾,那直接 l 去打点调用那个 app e n d 的 函数将十放进去,哎,咱们这个 l 呢,就是将十添加进去了,来运行一下,这个毋庸置疑啊,那么直接来下一题, 将缩影为二的这个元素修改成数字七,那这是列表的修改,是 采用了重新赋值的操作,通过啊, l 列表以见啊,以下标取值,先取出这个数据,然后重新赋值为七。好,下边为二,取出来,然后重新赋值。那原来它是个什么数据呢?原来它是 零一二,是个九来的,是不是?好,那么现在我们给他去跑一下,最终运行的这个结果呢?是变成七了,九修改成七了。好,来, 再来啊,最后一个打印,最终的列表已经打印了啊,那么直接过来到第二题,第二题,咱们是字典的一道题啊,字典呢,数据长这样子,直接给他去 c v 出来。 好,有了数据之后呢,对于这个数据,对于这个字典,你要去进行怎样的一个操作来?字典它的结构还是有点特殊的,我们还是要仔细的看清楚咱们的这个数据长什么样子啊, 哎,咱们这个字典呢,是有一二三三个数据对应一个键值,对,键值对的话,真正的核心价值体现在这个值,哎,就是张三啊,八十五啊南这个数据身上, 那将来我们要去删啊,修改啊,或者说查询啊,查的都是,哎,这个值。好,那么来我们看一下啊,新增一个键值,对,在原来的基础之上,新增键值。对,字典,他的操作不像函数啊,有那么多的一些函数支撑, 他不像列表有那么大的一个函数支撑。所以为二就是下标为二吗?是的。呃,这里的话,可能老师之前不怎么去说,所以这个词,呃,既然说到了啊,咱们就是 讲一下,之前我们在理解下标的时候,最开始是讲它是一个编号嘛,那编号呢,也可以理解成下标,也可以理解成,所以那么它们呢,就是三个不一样的一个词语,哎, 它的一个意思是一模一样的,只是说法不同而已,对吧?就是这三个是一模一样的意思,在 python 里面是一样的啊, 好,呃,那么在这里呢,我们是采用字典呢,是采用以键操作值的方式,那它的统一都是这么去写的啊,就是字典中括号里面呢,是给一个键键哎,也就是 k 翻译成英文的话是这个 k e, y, 然后呢给到一个值值,对吧?啊,那么咱们新增的话,这里得去注意一下字典,咱们已经知道了,是这个哎,学生字典 那中括号里面给的这个 k 呢?这个键呢?注意一下,一定是原来字典当中没有的一个 k 是一个新的 k, 才能达到新增建值。对的啊,目的啊,否则就是修改了,是不是?那现在我们给他放进去之后呢?哎,数据填充,再去打印字点十,咱们这个十八数据是不是就进去了,是不是 啊?这个 k 一定得是啊,你重新给他来一个的,对吧?是一个新的啊,你,否则,哎,是原来他已经有的话,你说这个 b 的一个要求,对吧?你看把这一行呢,给他去 c v 一下,是原来已经有的话,那则是修改,那我们把这个九十放进去,再次去打印字典的时候来刷一下。 原来是,哎长这样子的啊,后面,哎,长这样子可以看到八十五就改成九十了啊,这增加和修改呢, 写法是完全一样,取决于咱们这个键,他是存在原有字典当中吗?啊,如果说存在则是修改,如果说不存在,则是新增啊,这就注意一下了, 好,再来删除。删除,我记得他呢,还是要把你要删除这个键值,对,先拿出来,是不是?哎,也就说先从先从咱们这个字典当中 通过以键取值的形式先取出性别这个键值,对,也就它了。取出来之后呢,前面呢,加一个 d, e, l, 哎,就可以去将取出来的这个啊数据给它去进行删除,最终再去打印字典的时候,哎,咱们这个键值对数据就没有了,原来是四个,现在是三个了,是不是 好删除啊,删除最后一个啊,打印字典当中所有的键和所有的值,这里呢是涉及到 字典当中仅有的两个函数使用谁,一个呢是叫 case 的 函数啊, 记得加上小括号啊,记得加上小括号,因为它是函数嘛,必须带着小括号走的啊。好,那么,呃,这个获取值的话是改成 values, 按来说, k 其实就是键的意思,为什么要加个 s 呢?如果只是 k, e, y, 则仅获取一个键,加一个 s 表示你有多少我就获取多少,哎,就表示所有键的意思。好,那么此时呢,就可以去获取拿到。哎,你这个返回的结果是不是就是所有的键? 这是不是所有的减啊?包括这个 vanus 的 一个调用,它获取到的是不是就所有的一个值? ok, 那 么这个是最后一题啊,是,哎,字典的最后一题咱们就过掉了,来选做题,没有看到同学们做错的,咱们就把它这个答案对一下就好了,好吧,都是对的, 要不要老师详细讲,要不要老师详细讲?要的话老给老师扣一个一啊? 咱们依然呢是把这个嵌套的列表呢,哎,给它复制粘贴出来,这个数据结构也有点复杂,所以呢,一定要把它的一个哎数据层次搞清楚啊,数据层次搞清楚, 哎,就说第一到底有几层列表,来告诉老师这个嵌套列表有几层, 有几层告诉老师。就是如果说同学们在做这道题的时候没有做出来的话啊,没有,没有来得及去做的话,来回答一下老师, 他有几层,你,你把这个层数你先搞清楚,如果说层数你搞不清楚,这道题是没有办法去做的啊, 对,他是三层,对不对?怎么去辨别呢?你像你像我们每一对中括号也好啊,小括号啊,或者大括号也好,他是成对出现的,所以我们每次放在他的这个左括号上,他会将 是他同一对的这个右括号呢,给他高亮起来,所以呢,我们选到,对吧?我们悬停在这个左括号,他这一对的这个右括号立马高亮起来了,说明这是最外层的一层 列表,然后这里面是不是还有一层左括号,哎,给他点上去,哎,他的这个右括号在这,那这是第二层,再往这里进一层,这第三层再往里面进,是没有了,是吧?所以呢,他是三层,三层列表嵌套,这个得搞清楚啊,对不对?好,那么紧接着。

挑战三十天教会你 python 从入门到实战全程干货。无废话,存下吧,真的很难再找到了。跟课程配套的资料包和素材我也准备好了,想要的同学我直接打包发给你。今天我们学习 python 入门之条件函数。条件函数刚刚来的哈,条件成立,那么就高薪。条件不成立就普通啊。已经测试过了哈。 接下来这里还有一个什么呢?还有一个一浮空判断,如果表达式为空,则返回指定值啊,使用一浮空处理函数的含。嗯,员工的奖金。你看这里,现在来看个问题哈。来,现在看个问题, 先把这个所有员工查出来,你发现没,这一列是员工的奖金, 有素质的表示有奖金,没有素质的表示啥?没奖金。是不是这么回事?现在要干什么事情呢?他说啊,他说现在干什么事情,现在还要查询什么啊?处理员工奖金,如果员工为什么,如果奖金为空,则显示零。那怎么处理嘛 啊?嗯,来嘛,想写吗?衣服空在这个位置直接写啊。 select c from 烟 p 表 但是你写新显然就不对了。现在是不是我们查询员工名字嘛?查询员工的奖金嘛,是不是,只不过要怎么样,这个奖金不能,你如果这么写的话,奖金他还是跟原来一样显示出来,你看 是不是在整的里面有空有值啊,有值他现在就不行了。那怎么写呢?这个地方你就不能这么写,人家的意思是,那你怎么写呢?你就可以写函数这个位置。 if 什么? if 空, 是不是 if 空,如果谁为空,哪个字段为空? c o m m 字段为空,那这显示啥?显示零,那不是这么写就行了吗? 这样出来他就不会显显示成这种空,如果没有数据了,就显示成零,是不是?这地方 command 加加号是不是显示零啊?是不是就显示成零? 听到没啊,还是蛮简单,是不是这函数其实还是有用哈,其实讲到最后的时候你也可以第一个函数你自己来调用啊。也行啊,也行, 反面怎么写 you do 啥啊,就搞定了哈。搞定了,这就是我们的这个哈。 if 空这个函数是不跟 if 函数是一样的,只不过表达是少了一个啊, 还有一个什么函数呢?叫空 e f, 如果两个表达式相等则返回空。什么是表达式?跟你讲了,代码执行的结果一定有结果,我都称为表达式。普通代码执行结果没有结果的 啊,比如说我现在定义了个 int 变量 a a 等于十,他有没有结果吗?没有结果啊,是不是?我现在定义了一个表达式 int a a 等于一加二,他是不是一定有结果吗?有结果的就是表达式,没有结果的,那是普通代码, 你很好理解哈,你看使用空 e f 函数比较两个值,这个我没发现。有啥有啥那啥哈,有啥用来嘛。空 e f 函数比较两个数值,如果相等的返回空,那怎么写嘛? select 空 e f, 你 看比较两个数值,一和二,比较它,它来它相等不嘛?一,那肯定不等于二啊,那结果是啥嘛? 嗯,嘿嘿嘿。啊?什么鬼啊。 哎,那是说哈重新遇上,对了哈,把我吓着了。这个人出问题啊,三句话十个字母都没有,他返回了一,如果两个字母相等就返回空,你信不?就这意思, 那是不是反过来空嘛?没有值嘛?没有值,它就是这个意思,你以为啥意思啊?计算两个表达式, 这个呢?于是乎我们也就搞定了。是不是有种感觉?什么感觉?很,很 easy 啊?咳咳。 嗯,接下来我们讲什么呢?讲 case, case 的 话相对来说就来多一些哈。 case 这个表达式还有点复杂啊,你看根据条件返回什么呢?返回不同的词,你们学过编程的知道 switch 不? 编程里面是个 switch 啊,比较两个字是否一样?如果一样就直接两个表示,那就这个意思吗?他说使用 case 函数,根据员工的职位啊,职位等级 啊,只显示对应的员工的职位等级,有意思啊,来吧, 使用 case 函数显示员工的职位等级。 就是那个 manager, 就是 管理员。那个,那个 job 是 不是工作嘛?工作,人家还告诉你了,你看这里, manager 为管理, c r y k 为职员,其他为普通员工。那你就写呗。 select, 我 们,我们,我们查出的是员工信息,是不是然后还有一个 job 信息查出来,然后就开始写 job, 然后就开始写什么呢?写 case 我 们要怎么样?哎,你看到没有,完美不?太完美了,我都没想写,他就给我写完了。 从这一点看哈, levi 卡特要比茨克亚格要好一些。这个 levi 卡特是直接会把这个语法语法给你打印出来,是不是我看而那个比茨克亚格不会。 那么这个时候我们怎么写呢?你看我们要比较的是什么吧?我们要比较的是这个 jib 是 啥? jib, 所以 这里就写 jib。 我 们要比较 jib 是 啥? 如果 job 是 啥?如果 job 是 manager, 那 这打印出什么吗?管理,是不是管理?其实我们还有一个问 啊,还有一个,还有一个是什么来看,这里还有一个叫 c r u k 为职员,你看,如果是职员,那就是职员。 我看是职员。哦,职员啊,如果为职员,就打印职员,其他为什么? 普通员工就这意思啊。你看,每一次查询的时候,把 job 拿出来做比较,如果 job 是 money, 那 就打印出管理。如果 job 是 c r u k, 打印职员。如果既不是管理,又不是职员,那就是普通员工。 明白老师没?那就是普通员工。然后 select 星啊。 from 哪个表来 emp 表来玩一把来。哎哦 哎,是我哪儿写错了?语法 人,对的呀,我看看。啊空给空给空给 哦。 and kiss 没有 kiss 成功了。是没有 kiss 啊,你看,这是一个,你看这个就是职员,这个是普通员工。 manager 就是 管理。是不是管理嘛, 看这里啊,是对的啊。语法,你看这打印出来查询出来了啊。 case when 这个语法写的是啊,有点搞丑。 当你这个 job 是 它的时候,就打印出它当你这个 job 是 它的时候,就打印出它。如果这两个都不是,它是 else, 打印出它。明白没?就这意思啊,就这意思啊。 于是乎,我们就搞定了他这个主要是语法哈。语法你不用记啊,雷文看到他会提示你,那不就起起成功了哦,这里有哈,就搞定了 case 这个函数哈。 case 这个函数说白了也就是进行匹配啊。匹配 来吧,我们再把需求给它透一透啊。需求什么?查询员工表啊员工表啊,查员工表。如果部门号是十,显示 java 研发部, 那如果是二十,显示啥?二十?比如显示一个 weibo 前端研发部啊。如果是三十,显示啥? 后勤保障部,那只能做后勤的啊,后期保障部看到没?查询员工表。如果部门号是二十,显示 java 研发部。如果是二十,显示微博前端研发部。如果是三十,显示后勤保障部, 那这个怎么写呢 啊,来嘛,写嘛,在这个位置,我们就来写写哈 server, 员工还有个部门号,是部门号,我们这儿写部门号的目的是为了让他对一下对没对,听到没?你不一定查这个哈。接下来你就可以写个 case, case 问啊, n 的 case, 这个位置在这个里面还没有这个,这是 n 的 来语法来写吗?你看如果,如果什么呢? d, e, p, t, n、 o 等于十,显示啥呀? 你看,那不就是 java 研发布啊,然后在这个位置再写一行, 如果是二十,显示啥呀?微博前端研发部,是不是那 else 呢?那只有三十啊,你可以不写三,你也可以不写 else, 你 直接写问行不行呢?我根本就没有 else 啊。那如果是三十,显示什么? 后勤保障部,是不是这么回事?我只写了问啊, from 什么呢?延平,我们看行不行呢?用下这个代码是不是也是对的? 看有没有种感觉,尽兴书则不如无书,是吧,以前读书的时候文章都说这句,是吧,也是对的。所以这个呢,我们就 case 也能搞定, 随便玩啊,随便玩。哎,这个鱼师傅,到目前为止,我们也就搞定了,听到没?也就搞定了,也就搞定了哈,简单不? 是不是有种感觉很 easy, 你 看 job, 然后是这个啊,这个内容呢,感觉有点多啊,其实也还好, 淡淡的忧伤是不是?哈哈哈啊, 所以有时候衣服那还没有 l s 嘞。那为什么一定要有 l s 呢?你想说是不是吧?你看那个衣服是用在这里的, kissme 也是用在这里的啊,韩式是哪里都可以用啊。你这么去理解才对。

好兄弟们,现在呢,要给大家讲第三个格式了,坚持一下,把第三个格式给大家讲一讲,第三个格式叫做什么? if? else? if? else? 但是有哥们说,哎,不对,这里没有啊, se 对 它俩合并了。合并了啥意思啊?我告诉大家, else, if 它们展开来就是 else, if 是这个啊,展开来是这样子的。好,那理解一下怎么翻译呢?如果,否则,如果,否则。 就这样的一个含义,那这里中文什么什么?呃,我给大家一起来看一下。问他成绩,你成绩是九十分以上吗?啊,不是。那再问你成绩八十到九十之间吗?啊,不是,不是才会往下问,但当然先看一下语法,语法啊, if 条件表达是一,执行体一。这里呢要跟大家强调一下,虽然我这里是执行体一,你虽然就写了一句啊,你可以写两句,三句,一百句都可以,但是前面一定要有 制表符,是不是一定要有空格呀,不然的话就不是一个整体了好不强调。那执行体一啊,执行体,然后 else, if 二,然后执行体二,然后再 else if 条件表达是 n, 然后执行体 n, 然后等等等等。最后一个 else, 这个是可可选项,这一个叫可选项, 也就说你写也可以,你不写也可以,理解吧,然后根据我们具体需求我们再去思考到底写还是不写啊?那这里有一张图啊,这张图想表达什么意思呢?我,这我为什么要画这么一张图呢? 原因是我就是想跟大家讲这么多,他就是一个整体,就是一个整体,那既然这个整体里面只有一种可能会被执行,要么一倍执行,要么二倍执行,要么三,要么 n 倍执行。呃,不说 n 吧,要么三倍执行,要么四倍执行。记住, 不可能同时被执行,也不可能同时都不被执行,必须有一条被执行。好,我们用代码来写,否则讲汉字讲的太抽象,抽象的东西大家刚开始学不好理解。 好啊,这里写一个 test 十三。 好,我们一起来看一下哇。现在有点时间,有点有点紧张了, 否则,如果否则,如果,否则,先按我这个需求来写啊。 对一个学生的考试成绩进行等级的划分,如果分数大于八十分,等级为 u, 否则,如果分数大于等于七十分,等级为零,否则,如果分数大于等于六十分,等级为中,否则等级为差。 好,那这个时候我就大家跟着我的思路一起走啊。第一件事情,你要定义变量。定义变量,那我干什么呢?接收用户的输入。 那这个时候你要考虑一个问题啊,成绩是什么类型啊? int 类型对不对啊?需要将写全一点啊,需要将 input 的 返回的 str 类型转换为 int 类型, 对不对啊?不然的话你一比较就出错了,那成绩叫 score。 好, 我就直接转了。这里写个音符的,请,请输入您的成绩。 ok, 那 输入完以后紧接着我写第二步。好,逻辑判断就执行。逻辑判断 f 怎么写?看第一个条件啊,如果分数大于等于八十,等级为 u。 大 于等于八十,对不对啊?大于等于八十,好,等级为 u。 print 啊,等级等级为优,优秀的优。 ok, 当然我这里还是给大家把注式标上去,这样子方便你们去复习。等级为 u 吧,然后紧接着,否则,如果,否则,如果分数大于等于七十,等级为零。 好,继续写。 else if 死过,死过大于等于七十,怎么办?等级为零,对不对? 直接复制吧, ctrl c, ctrl v, 等级为零,良,好的良。 ok, 好, 同样,我把这个 拿过来,否则,如果,其实为零。好,我们再来看下一个,否则,如果成绩大于等于六十,等级为中,你是不是还得再写一个啊? else f 是 过大于等于六十。大家看啊,我一, 现在你看这条语句是不是还没有往这边缩进呀?我只要写一个冒号,它就立刻自己就缩进了。不是,我,不是我自己让它缩进的,我只要写个冒号语法认为这条语句就应该往里头缩 好,这个时候呢? print 等级为中,对吧?等级为中。 好的,这个时候我们还是要尽量的讲第一个,我就给大家把注字写的详细一点写到这,那我们再来看要求啊,否则等级为差,否则等级为差。那这个时候我就直接写 else 登记啊。对,这是注,是写个警号,这里要大家注意,不能顶格写啊,一定要有一个制表符,对不对啊?我刚才强调了很多次了, 等级为差。好,那我想说什么?兄弟们,我想说的是,这是一个整体。嗨,有哥们说你又来了,对,我不说的话,我,我不这样讲的话,你们等我就忘了,你们下去写代码你就不知道怎么回事了, 你也搞不清楚程序咋就那么运行了。 你记住,跟我刚才讲的话是一模一样的。我说了,这是一个整体。这是,哇,这个字好大, 这是一个整体。记住,只有一条语句 背执行,你只有一条语,只有一个。呃,语句执行体只有一条语句执行体吧?执行体。大家知道这个执行题里面可能是 n 条代码啊,不是一句代码, 你要记住,这个执行题可能是 n 句代码,不确定你写了多少就有多少。 n 句代码背执行。 那当然,我说这句话的原因就是想告诉大家,没有可能多个被执行,也没有可能一个都不被执行。 至于有个同学问啊,你不限制小于八十吗?或者小于什么呀?我,我这里给大家留一个思考题啊,你们回去思考啊。我现在先不说,也就说如果用户,就是如果用户输入,那输入小于零了, 小于零或者大于一百了,那你怎么处理? 你怎么处理?肯定是可以处理的,对不对啊?但是呢,我这里面没处理,我这里面没处理啊,你就不要去纠结。哎,你为什么不去处理这些东西很简单,很容易处理,我现在是要给大家把这条语法给他讲明白。好,那既然是这样子的话,我们回到这边来, 我这里输出一句啊,程序结束。好,那大家想,既然这是一个整体,也就意味着要么等级为优,等级为,要么等级为良,要么等级为中,要么等级为差。他不可能说出一个优,又出一个良,又出一个中又出一个差,也不可能说一个不出。好吧, 运行,来,我先来一个 u 的 啊,八十分以上就是 u 八十八,你们看等级为 u, 是 不是程序结束了?没问题啊,好,七十七,七十七,是不是应该是凉呀? 好,回车,你看等级为凉,是不是结束了?好,六十六,是不是等级为中结束了?来五十五,五十五不及格了,等级为差程序是不是也结束了, 没错吧。好,那这个时候我再给大家打一个断点,记住,我今天教你打断点目的是告诉你你自己怎么去看这个程序怎么执行了如果你不明白,哎,你不明白我给你画图什么意思你也不明白啊,我刚才讲的。那你自己打一个断点自己去看看右键第八个 当然我先要输入啊,我输一个六十六我回车 大家看啊,我输的是六十六,能理解吧。你看这里是不是已经拿到了 score 等于六十六呀。好,那六十六大于等于八十吗?成立不成立处还 force 处还是 force 呀。六十六肯定不大于八十嘛。 force 好, force 以后你告诉我程序怎么办。进不进去 不进去。那不进去怎么怎么处理?是不是判断他呀。好,我按一下 f 七啊, f 七也是下一步啊,你看,进到这里来了没错吧?进到这里来了。那大家想六十六大于等于七十吗? 大于等于七十吗?也是 force 不 大于啊。成立不成立不成立吧。不成立怎么办?要不要判断它?对,记住判断一个一个往下判断好判断它。那大家在想六十六大于等于六十吗? 大于等于吗?六十六肯定大于等于六十吗?那这个条件是不是处处要不要进去? 要不要进去?哼,没有人说话对吧。要进去就打一。那肯定是要进去的,进去了吧 等级为中。好,兄弟们,我再问一下大家既然都已经进去了,要不要判断 else 要不要判断?不用判断了,直接出来,直接进到这里 f t 能看懂吗? 好,我相信啊,有哥们大概有点感觉了大概有点感觉了啊,那怎么办呢?我现在再给你一个思考,你怎么去思考呢?你看我还是停在这里, 我现在怎么做呢?我现在再低 bug 一 次,你看我这一次怎么办?我输七十七啊,你们先记住,我输了七十七。来,你们告诉我七十七大于等于八十吗? 七十七不大于等于八十,那也就是 force。 好, 哎,你看你,我不用说了,我把鼠标放在上面,你看啊,放一会,放个两秒钟,你看结果看到了吗? 是不是呀?结果是什么? force 吧。对,结果 force 这一句不执行,执行这一句。 f 七,你看执行这一句啦,七十七我放一会啊,你看,看到了吧,七十七 大于等于七十吗?大于等于七十。成立,这里是处好,兄弟们,处,是不是要执行这一句话? f 七,执行了吧,记住,执行完后面还判断不判断。这里还判断不判断,它是一个整体啊, 兄弟们,这是一个整体啊,也就是说整体当中有一个成立,后续就不判断了。 对,整体中只要只要有一个条件,成立怎么样后续条件,后续条件就不判断了。 结束这个整体。 ok, 我 这样讲应该能理解吧, 结束这个整体也就意味着,既然是这样的话,那这句话执行完,这下面两句都不执行,应该直接执行这一句。我按一下 f 七,大家看,直接执行这一句了。好,再结束了,程序结束了,所以你看到控台 成绩为零啊,所以我通过这样的讲解,我相信你应该能够理解了, bug 就是 为了帮助你理解这个程序怎么去执行的。好,关于我们第三种 if 逻辑判断就讲。

大家好,欢迎回到我的 python 教学系列极速打基础之实力篇制作会员折扣计算器。 某电商平台根据用户会员等级和订单金额计算折扣。第一步,使用 matchcase 判断会员等级对应的折扣,普通会员无折扣,黄金会员九折,铂金八折,钻石七折。根据会员等级计算出折扣之后的价格。 第二步,使用 if l if else 根据订单金额判断活动的额外满减优惠,所有用户享受满五百减三十,满两百减十块。也就是说黄金以上会员在享受会员折扣的同时还能享受满减优惠。 最后计算最终价格以及输出结果,我们需要得到的内容有三项,第一个会员折扣价,第二个是活动额外优惠,优惠了三十元还是十元,以及最终的价格。我们事先使用 input 函数获取了用户的等级,并使用 float 函数把金额转换成了浮点数。 下面我们来进行会员等级的折扣判断, match 后面的匹配对象是等级 level, 最后跟上冒号,然后我们按回车, piechon 就 会自动帮我们缩进代码。现在我们来写第一个匹配项, case 匹配值是普通会员, 同样以冒号结尾,再次按回车,它也会进行缩进,表示这是 case 的 子句。普通会员没有折扣,那么就是原价。 discount 等于一点零, 我们直接复制第一个选项,注意在这里按回车的时候它默认还是 case 的 子句,所以我们要删掉一个缩进再粘贴。第二个匹配值是黄金会员,黄金会员是享受九折优惠,那么就是零点九。第三个匹配项是铂金会员, 铂金会员享受八折, discount 等于零点八。最后一个匹配项是钻石会员,钻石会员享受七折, discount 等于零点七。由于我们这里 input, 它接收到的字符串可能是任何数据,用户可能不按规矩输入, 那么我们就要给他做一个提示 case, 使用下划线通配符提示用户输出 print, 告诉他输入错误。本次无折扣, 没有折扣,那么同样的 discount 等于一点零, 这样我们就根据它的会员等级得到了它的折扣标准。下面第二步,使用一斧 l e 斧 else 判断活动的额外优惠。这个满减优惠是根据订单金额去判断 一斧 price, 如果它大于等于五百,那么就要给它优惠三十块,额外优惠金额是三十元。 extra discount 等于三十, 如果不满足小于五百元,那么我们要判断它是否满了两百元。 l e f price 大 于等于两百, 如果是,那么这个额外优惠就是十元。最后两个条件都不满足,既不大于五百,也不大于两百的话,那就没有优惠,这个额外优惠的金额就是零。然后我们计算最终价格 final price, 它就会等于订单金额。 price 乘以折扣价格, discount 减去额外优惠价格,然后再输出会员折扣价格。我们这里要给它计算一下 price 乘以 discount 就是 打完折扣之后的价格,然后在这个折扣价格的标准上,还可以再减掉活动额外优惠,最后输出最终价格。 好,现在程序的主体功能就已经完成了,我们再优化一下小细节,比如对于折扣价格和最终价格,为了输出美观,我们给它保留两位小数, 使用冒号点二 f 保留两位小数,最终价格。这里也是一样,冒号点二 f 保留两位小数,然后再调整一下格式运行代码。假设我是黄金会员, 购买了三百七十七元的商品,可以看到三百七十七元,黄金会员是打九折,九折之后是三百三十九点三元,在这个基础上,我满了两百,还可以再减十元,最后的价格是三百二十九点三元,我们再重新运行。 假设这次我是钻石会员,购买了六百六十六元的商品, 钻石会员打七折,七折之后的价格是四百六十六点二元,我的总金额满了五百元,还可以再减三十元, 最终价格是四百三十六点二元,我们可以验算一下,打开计算器,六百六十六打七折,乘以零点七,再减去三十, 最终价格也是四百三十六点二元,那么就说明我们这个折扣计算器已经制作成功了。 在这个代码中,我们运用到了模式匹配和多条件判断两个知识点,同时用到了比较计算符以及数据类型转换,非常适合巩固我们前面所学的知识点。大家一起动手敲一敲,试一试吧!

说实话,你有多少次教班进行代码,却根本不知道它的实际作用?今天就把这个问题讲明白。核心原理很简单,每个拍放文件都有一个特殊的内置变量 name。 如果你直接运行这个文件,拍放会把这个变量的值设为 name。 但如果这个文件被导入到另一个脚本中,使用这个变量的值就会变成该文件的文件名。举个例子,如果一个文件里写了打印 name 的 代码, 直接运行这个文件,输出的结果就是 main。 要是另一个文件导入了这个文件,输出的结果就会变成这个模块的名称。那执行代码的意义到底是什么? 有些时候,你希望部分代码只在文件被直接运行时执行,而不是被导入时就执行,这就是执行代码的作用。 its name 等于等于 main, 这行代码告诉 python, 只有当这个文件是主程序时,才执行后续的代码快,这能让代码结构更清晰,实现代码附用也是专业的代码设计思路。现在你不再是盲目教搬执行代码,而是真正理解了它的含义。而这就是单纯使用 python 和用开发者的思维写开放的区别。

警告,本课程耗时五个月,精心打磨,总时长二十八小时,十七分钟,带你系统学习 python 编程,包括工具链配 置与渗透实战,共三百六十集。要是想系统学习 python, 搭建开发环境资料包或自己录制的从领导进阶的学习视频和资料都可以分享给你,哪怕你是零基础也能学会,是粉丝留着学习,全部免费打包带走。 好,那么今天呢,我们讲到的是这个 if 语句,先把这个主题呢写出来,我们就直接来看一下啊,作业 哎,我这个作业呢,哦,在这 好,大家签到成功之后啊,来,我们看到作业呢,有一个第五题啊,大家错的比较多,我们来看一下第五题。 好,首先呢是第一题啊,第一题第一题这个是选 b 啊,也有同学是选错的,大家看清楚啊,题目要看清楚, 那么他是列表,他的一个下标取值说法正确的是什么,对吧?第一个说,下标只能从零开始去进行正向取值,不能反着啊,这个 在课堂上是这么说的,但我们上节课只有去提到语,却里面有去进行拓展,对吧?下标他是有两套哎,这个正下标以及负下标的,所以是能够去进行反向取值,大家如果说实在,对吧? 呃,你在纠结这个 a 的 话,那你就去试一试啊,你就说,哎,把那个下标改成负数,是否能够去取到数据呢?是 ok 的 啊。好,那么正确的是选 b b, 那 么看一下 c 错在哪里包包括这个 d 啊,列表下标越界是不会出错的,试一下就知道啊, 会出错啊,这个要去试嘛,你都已经在做作业了,包括他也有这个编程题是不是?那肯定要把这个拍叉打开啊,遇到这个有疑问的地方啊,还是要去运行,去试一试, 列表当中下标为二会返回空值,这是属于下标越界。 c d 啊, c d 两个肯定是,就是一对则对,一错则全部都错了,你看他们两个说的其实是一个意思,下标为二是不是就是下标越界的意思,对不对? 所以话两个都错了啊。这道题呢是选 b 啊,这道题是选 a 啊。第二题是选 a, 他是我们再添加四十四,再去添加五十五之后的一个结果。五十五是放在下标为一的地方,你就看一下下标为一,下标为一,一,一是不是五十五是的话就选 a, 对 不对啊?你看只有 a 是 吗?啊,四十四读在后面就,呃,不用看了啊。好,那么第三题是选 c 啊, 这个几乎是没有做错的字典呢?它是没有,它是不支持下标,不支持下标,所以你通过下标为零去取值,肯定是会出现错误问题,它支持什么呢?把下标改成件名件的名字,然后通过件名取出件所对应的值,是这么个意思啊, 好,那么,嗯,这是 c。 好, 这道题是 d 啊,这个 d 是 d。 第,正确的是原组一旦定义内部元素是无法去修改的。 ok, 这是原组这种数据类型的特性啊,也是它存储数据时,哎,我们会选择它去进行存储的一个呃, 方式,对吧?就是它的一个依据啊。依据,那么关于 abc 都错了,看一下错在哪里。原组它是不支持修改的,所以添加错误 啊。原组时表示存储一个数据,存储一个数据时,这个原组这个数据后面得去加个逗号,他不加 会出现错误,对吧?嗯,那个数字类型的错误啊,好,原组原组支持下标取值,但不支持切片,支持下标就会支持切片,因为切片他其实就是下标的升级版,所以这道题是 d。 好, 这里打印的结果选 c 啊。这道题错的最多 的原因是因为啊,大家就是看到 a 对 应的数据是一,那直接就写上一个啊 a 这个选项了,但其实后面还有一个 a, 那 有同学就是会疑惑,哎,老师,你不是说不允许不允许数据出现重复吗?对吧? 不允许数据重出现重复,出现重复啊,老师在课堂上所讲到的不允许出现重复,他不会直接报错。我们在取这个数据 哎, d 这个字典当中,通过键名为 a 去取数据时,依然是可以去取出数据的,他不会直接报错。 但是为什么老师讲啊,不许不能去重复的,对吧?让这个键名对吧重复出现,为什么?哎,因为咱们如果说让字典里面的这个键, 比如说 a, 他 对应的这个值后面再来一个 a 对 应的值,分别是一和三的话,那后面再通过 a 去取的话,只能去取到三,前面这个一是拿不到的,他会出现后来的重新覆盖掉。哎,原来的哎,就前面的这个呃键所去对应的值,所以呢, 大家得去遵守啊,遵守啊,字典当中的一个存储数据原则就是一个键啊, 键名是唯一的,是不能重复的,这可以去确保他所去对应的值是可以精确的。哎,被后续的这个取值操作给它获取到,那如果说你出现重复了,那前面这个一其实没有存在的意义,这也算做,其实也是算作,是啊, 错误的一种,对吧?错误的一个情况之一,只是说没有直接报错,但其实也是出现了数数据的一个。哎,这个不准确的一个问题,是不是?所以的话啊,这道题是选 c 啊?好,那么来编程题,编程题, 编程题的话,我们这里得去复习一下啊,他去包括了这个列表的一个增删改查操作,包括这个字典有个选作题啊,是欠套取值,这个欠套取值用的很多,所以啊,这里有去单独的拿出来给你们去看一下, 给他注肾一下啊。 好,我们通过语却还是来复习一下啊,复习一下上节课所述讲到的列表字典原组集合, 这个集合是等会老师要给你们去补充的一个知识点。先看前面这三个列表里面来复习一下它支持哪些操作呢?第一就是基本的下标以及切片,这个呢,呃,提到了下标和切片的一个通用性,不管是字典啊, 圆组啊,列表啊,这这三种系列类型,它都是支持的啊,所以就不多说了。包包括它的一个取值,对吧?下标值的一个取值啊,大家可以去看一看啊。这个就不多说了, 下标和切片啊,这个是一个通用的,那么看到这里有个列表嵌套取值,它可以通过多层下标逐层取值,可以把内层的一个列表看作是外层列表的一个元素。什么意思呢?就是里面的那个列表看成是一个整体,看成是一个数据, 看成是外面的列表里面的一个数据啊,就称之为大列表和小列表他们之间的一个层级关系,对吧?好,那么单层嵌套是在呃列表当中去嵌到一层列表,称之为单层,多层嵌的话,则是在列表当中去嵌套 小列表的前提下,再去签到一个小小列表,这个就是三层啊,称之为多层是不是?好,那么这是我们上节课所去演示的啊啊,如何去进行咱们这个列表嵌套的数据结构定义,包括,哎,接下来的一个下标取值操作,也是需要同学们搞清楚的一件事情啊。 好,那么第三个就是哎,列表他的一个内置函数增删改查,其中包括像增加函数两个啊,常用的是第一个删除函数, 哎, remove 也是常用的啊,然后这个第二的话是一个通用性比较强的,也有去提到查找是 index, 通过数据七百七十七去找下标值修改是重新赋值,通过等号重新给到一个三十三去将原来的值给它去把替换掉的这个修改操作, ok, 好, 这里还有去提到,对吧?给你们去拓展了一个可可变和不可变的一个知识点,这个知识点是方便同学们在使用 列表或者说字母串的时候,你对于他那个函数啊啊,在使用之后要不要去进行打印会有一点点的理解啊,我可以把咱们所学的知识呢,稍微给他去串联一下。好,那么认识到了字典呢,是不可变类型,列表呢是可变类型,其实除了 字母串他是不可变类型外,其实还有其他的,还有其他类型自己呢写一下。 嗯,不可变类型包括包括哪些呢?第一个就是字母串,第二个啊,咱们这个数值类型也是需要重新赋值才能去达到修改操作的,再去括号类型, 原组, ok, 就是 他们四个是属于不可变类型的。好,可变 类型包括包括哪些呢?嗯,像这个列表啊,是个代表来的,是不是列表啊?字典 哎,集合啊,是可以去进行修改可变的啊,原内存地址地,在存储数据时,内存地址是可以去啊,发生变化的。 好看,那么这个是列表的操作啊,收起来,好,字典,字典是一个非常常用的啊,就在这个后面我去提到,列表是最灵活的序列类型,支持增删改查以及签到取值,适合存储有序列,可就是有顺序可以被修改的数据集。那么同时还有个字典, 四点是除了列表以外,哎,是第二常见的序列类型,那么它是通过键值队去存储数据,适合去管理结构化信息,比如说,哎,一组商品信息或说一组哎用户信息。 ok, 那 么它是适合哎,结构化数据,单元化数据的一个存储,那么它是不支持下标,不支持下标的啊,它只能以键取值,快速通过键去取值这个操作,它的所有操作都是统一的,对不对啊? 他所有操作都是统一的,适合存储单元化数据啊,哎,比如说什么呢?你去进行查询操作,则是一键 在字典的中框里面写上键名,就可以一键取值,取出运动鞋这个纸啊啊,包括这里也是同样如此,取出查询,还有两个函数可以去用的啊。呃,合适的场景下之下去用。常用的还是一键取值啊, 删除用到的是 d、 e、 l, 好, 后面跟上取出来的这个键值,对,则哎,去进行删除操作, 增加以键取值,哎,给它去新增新增一个数据,新的一个数据值进去,好,那么就是会,嗯,键名和所需对应的值就会啊,重新给它添加,在原字典当中修改, 如果原来的这个键名是出现在字典当中的话,则会把原来的二百九十九改成三百九十九点九, ok, 那 么这个是修改了是不是?好,那么这是字典啊,字典也是非常常见的一个数据结构,需要去把握一下 啊。然后我们讲的最后一个知识点是圆组,圆组的话用的就比较少了,那么他只适合什么呢? 看这里,它只适合去存储固定数据,固定数据啊,啊,数据呢,是不会去发生任何改变,修改的一个数据才会去选择存储到原组啊,原组定义小括号, ok, 查找时只有一个 index, 通过数据找下标的方式,其他就没有了。只有这一种查询方式啊,单元素数据存储时后面必须加逗号,这个是, 嗯,需要注意到的,不加逗号则这个数据类型会被识别成其他的类型,需要去注意一下。好吧,好,那么这是上节课的内容根据啊,咱们这个课程的内容,我们来完成作业, 来作业就非常简单了,对吧?刚刚复习了一下,我们直接就是看到第一题啊,需要在我们这个 l 这个列表当中去删除掉数字。八,我们要去进行删除的话, 需要去用它删除,就是 remove, 要么就是 d、 e、 l 两种方式。 remove 啊,好用一点,你把它放进去就可以去将,哎,这个 列表是去这个数字八去进删除,如果删两次的话,你就把这个函数给他去使用两次就好了。最终去打印 l 的 时候,他这个数据,他这个列表是不是就没有八了?如果说是两个八,我们给他去调用两次, 那二十个呢?有的人就会纠结,对吧?啊?咱们这个删的这个方式呢,不够灵活啊, 他是根据数数据的个数来去完成对数据的删除啊,那么这里要去进行循环操作的话,得去 得去用到下节课的那个循环操作缝,循环便利取,只取出来这个数字八则去进行删除,所以暂时啊,只能这样子去完成。晓不只能这样子啊,末尾去追加一个, ok, 使用到的是添加末尾已经指定了就直接来,然后再去打印 l 的 时候, 好,那就是在原来的这个山的结果上去加了一个十,末尾追加一个十,对不对?好? c c 说,是啊,将列表将列。

拍档必须背的核心单词,新手专用最基础十个单词 print 打印,输出 input, 输入 def 定义函数 if 如果 else, 否则 for 循环 while 循环 return 返回 input 导入类似列表数据类型单词八个 int 整数 flow 小 数 steamer 字母串文字不偶不尔真假 tick 字典 topos 圆组 set 集合 man 空无函数操作单词十个 line 长度 append 添加 render, 删除 sort 排序 range 范围 open, 打开 close, 关闭 read, 读取 read, 写入 read 运行。你学嗨了吗?从零开始学拍伞,全套资料自取。

在开始前,我想到一个笑话,你知道这是为什么吗?在拍算眼里,这段话就是这么执行的。今天 day 五,我们用这个笑话秒懂拍算最核心的 if 条件判断。一开始默认买五个橘子, 如果看见西瓜是真的吃,就把买橙子的数量改成一计算机,没有常识,它只会无情地执行你字面上的条件。 为了防止老公犯傻,我们得把逻辑写得更加严谨,用音库特模拟老公在超市看到了什么。 如果 f 看到西瓜强子照样要买,外加一个又大又甜的西瓜。如果看到苹果加两个苹果, 否则 else 就 老老实实买五个橙子,保命要紧。最后完美结账, 我们可以在下面的框框式运行一下看,加上 f、 l、 f、 s 之后终于买对了。所以写代码就像是在给一个听不懂人话但绝对服从命令的小弟派任务。今天就到这里学习笔记放在最后了。

逼自己七天可玩拍摄核心语法,你会发现自己真的超厉害,全程纯干货,无废话,建议赶紧收藏,全网很难找这么全的警告!本系列教程耗十五个月制作,共计两百六十八集,陪你系统的学习拍摄核心语法,绝对是抖音最良心汉系统的拍单全套教程了,视频包含拍摄基础,软件安装, 使用函数讲解,项目实战等。看完教程,配合讲义,轻松上岸入职大厂。好,接下来我们再来看到这个综合案例啊, 这是一个猜数字的游戏,那么这个游戏我们看到它的要求哎,定义一个数字, 这个数字呢是一到十哎随机产生,然后我们去给啊这个用户三次机会来判断呢,是他能不能把这个数字猜出来,这个游戏大家应该也玩的比较多,是吧?像我们 去参加一些婚礼的时候,啊,啊,那个司仪经常是拿这个游戏做一个暖场游戏来玩, 我相信大家可能都有玩过,是不是?好,咱们看到他的一个要求啊,这要求呢,数字随机产生,他的范围是一到十,然后给他三次机会去猜,那么这三次机会我们可以通过三层的一个嵌套判断 哎去实现,然后每次猜不中,就要给他提示太大或是太小,因为你不提示他是不是没有这个思路啊,就不知道往大的猜还是往小的猜。好,这里呢,来,我们根据他的要求来实现 哎,首先呢,第一个要有一个随机数,那么这个随机数我们怎么来实现呢?啊,来,我们第一步就应该去什么哎,有一个 去生成一个随机数,好,这里生成随机数,我们给到大家提示了啊,这个提示呢,就是咱们 python 里面它已经有现成的一些方法 啊,就是说它已经把这个功能啊做好了,我们只要去用就行,所以呢,我就直接把这个生成一个随机数的这个方法,我们拿过来啊,去直接使用。 好,那这个怎么用呢?大家可以先按照老师的方式,我先把它导入音符,导入我们的这个随机数模块,所以这个其实就是我们后面会讲的啊,去导入随机数模块, 因为我们要用的那个功能放在这,就是在这个包里面,就是说这个袋子里面才有我们要的东西,所以我要把这个袋子,是吧?把它放到这里来啊。好,然后我们通过这个方法里面的这个, 哎,通过这个方法去产生一个一到十的一个随机数啊,所以我们可以来打印一下这个地方,我们打印一下这个呢,它是不是每一次都会产生一个我们的随机数, 哎,这一次是三,然后是六,是吧?然后七,你看每一次是不是都有,都是不同的, 对,不同的哈。好,那这个我们就直线了,那再来看到第二步,第二步我们是不是就要去接收用户输入 啊?去让他猜,是吧?第二步了,我们要去让用户先让用户猜个数这个数字。好,那,那来个于子,第一个用户,比如说啊,他第一次猜的,第一次猜的,那我给他 input 啊,请输入要猜的,那还是给他一个提示,是一到十这个范围的啊,因为你毕竟只有三次机会,是吧?你范围太大了,可能他猜不中。 好,然后我们接下来是不是让他先去判断他这一次有没有猜中吧,对吧?所以说第三步呢,我们就要去做一个判断啊,判断他第一次是否猜中啊?判断他第一次是否呢?猜中。 好,那么来一个 if, 看到它 user 一, 它是不是整整于我们的这个随机数啊?如果它猜中了,那么大家如果猜中的话,我是不是直接就 让它不用猜了啊?如果它不等于,那么呢?那是没猜中,这个条件是表示说它是没有猜中,没猜中的状态吧。 好,没有猜中呢,咱们是不是让他继续猜啊?在这里让他继续猜第二次啊,让他猜第二次。那如果这里 好,我就先用一个 pass 表示啊。好,假如说他 这猜中的话呢? else 是 不是就表示它是猜中的啊?猜中的状态啊?好,这个 pass 就 表示我先给它占位一下,就让它不要出现这个语法错误,好不好啊?如果是猜中的状态呢,那我就直接就恭喜它了。 欸,恭喜你啊,这个是猜中的啊,好,那我就直接把这个 啊来,假如说没有猜中,就让他继续猜,猜第二次,那我再定义一个 user 啊,他输入的第二个 来,我们可以直接给它简化一下,哎,不用写这么多,是吧?我们来一个 l if, 好, l if 这里大家想想,我们用 if 嵌套是不是可以实现啊?用多层,它这里要求的是用什么?要用三层 嵌套,哎,通过三层嵌套判断实线,那是不是我们要用用这个一副语句的嵌套,对吧?那我再来让他继续拆第二次 啊,那么第二次我这里就直接来一个,让他继续拆第二次的话,是让把把这个直接拷贝过来, ctrl 加啊,复制粘贴在这。 好,那就是说这个是我们的第第二次啊,第二次猜了啊,那你可以给他提示一下,没有猜中,是吧?啊?就是没有猜中,那继续第二次, 好,那第二次,那就来个 user 二,它如果是不是再去判断啊,如果它没有猜中,假如说它不等于我们的,就还是没有猜中, 还没猜中是不是就让它干嘛就是没猜,你就让它提示啊,提这个没猜中啊,继续,是吗?第三次啊,假如说它这里是 else 走的 else 呢? else 是 不是就是说第二次猜中的啊?第二次呢?猜中了,那我是不是给他传一下,这里这里第二次呢?猜中了 啊,好,那如果说它没猜中,我是不是要再给它继续第三次猜啊?啊,那我们可以把这个给它复制一下,然后粘贴在这儿啊,继续第三次。 好,那这个就是第三个,第三次输入的是我再给它判断一下 if user 三啊,他如果啊不等于我们的 number, 那 就说明他什么是第三次还是没猜中?第三次啊,继续没有猜中 啊,那就没机会了啊,机会已经用完了。 好,如果这个地方走的 else 呢?来就是说表示他是第三次猜中了啊,那就是第三次是不是猜中了, 只要走的 else 是 不是就是他会猜中的状态?哎,那我们就可以给他反应一下啊,恭喜第三次 踩中,要踩正好来,大家看到,我们看去 alt 加 l, 给它格式化一下,看是不是这样子的。 当然,我们能不能够用咱们的呃,这个多重判断来实现呢?肯定也是可以的哈,这都可以通用啊,只要是逻辑是对的。好,我们来运行一次。 好,假如说。当然我现在不能把这个是不是打印出来。嗯,来,我们把打印我给它删掉哈,运行一下。 好,然后猜个四。哎,没有猜中,哎,那我们是不是还要提示他,对吧?还得提示一下他啊? 好,那我们再来猜第二次,来个二。好,再来一个六。啊,是不是三次都没猜中? 好,那我们这个提示我们怎么来实现呢?那也就你这里没有啊,猜中 抖音。

多看 python 知识,你的大脑将不可逆转的变聪明!警告,本系列视频耗时三年制作,共计三千一百九十一分钟,从零开始,详细介绍 python 知识技巧。由于时长太长,本视频先带你过完入门篇循环语句所有函数详减。那接下来咱们来看看这个循环语句。 循环语句呢,在开发的时候呢,他的使用频率比 if 可能还要多啊,所以他非常的重要。那循环语句到底是干嘛的?哎,就好比说我们打游戏是吧,经常能碰到一些喷子啊,喷子不可怕,可怕的是他能一直喷, 对不对?那关键就在他能反复的不停的去干一件事情,对吧?那循环语句呢,其实做的就是这样的一件事情,他可以啊,可以让我们的代码干嘛呢?重复的去执行,哎,这个就是循环的一个作用,那比方说,哎,我们在这块写上一个,呃,写上一个喷子是吧? 啊,这个这个,这个,喷死你,好了,随便写这么一句话,喷死你,那我这个喷一次的威力你看对吧?很小啊,一闪而过就完事了。那什么怎么才能把它威力加大呢?加上循环对不对?那循环怎么加?对吧?我们介绍第一种循环语句的写法叫 will 循环 啊, while 循环。 while 循环的写法呢,特别的简单, while 空格后面跟上一个条件上的判断啊,条件判断,如果这个条件成立,我就去干一件事情,比方说这里面去按代码,那么 执行完代码之后,他会再一次的去判断这个条件是不是成立,如果成立,哎,再执行这个代码,有点像什么呢?像我们喝的那个冰红茶,对吧?那冰红茶,哎, 买一瓶冰红茶,判断一下那个那个那个瓶盖上面是不是再来一瓶,对吧?是,再来一瓶好了,你就再换一瓶上来,再判断那个瓶盖, 然后再换一瓶再换,对吧?什么情况下这个循环会结束呢?当你这个条件不成立,就是你的那个瓶盖是谢谢惠顾的时候,对吧?它就循环就结束了。所以 vivo 循环它的执行过程 特别的简单,就是判断条件是否为真啊?如果真执行代码啊,如果真执行代码,然后再次判断条件,对吧?然后呢?去执行代码,然后以此类推,直到, 哎,直到这个条件为假, ok, 循环结束啊,那这个是 will 的 一个一个过程,那有了这个语法的话,我们就把它套进去呗,对吧?很简单,比方说加上一个 will, 里面跟上一个处啊? will 处处什么意思?是真对不对?然后把它推下去, 哎,推下去,那这样的话,一个循环结构就算,哎,弄完了,那我们把它跑一下,看看什么效果啊?用箭走, 对吧?这个喷人的效果肯定比刚才要对吧?给力的多了,这是名副其实的喷的,对吧?所以这个时候我们就知道了,说 循环 will, 对 吧?后面跟上一个处,哎,就可以让他无限循环,对不对?那这种循环呢?我们又给他起个新的名字,叫什么叫死循环?什么叫死循环?一直去做一个事情,永远都停不下来, 好吧,这个叫死循环, ok, 那 么有了这个死循环的话,有了循环语句,我们就可以拿循环语句去做很多的事情。比方说来,各位,我们想这么一个事啊,我现在想让你用程序啊去数数,从一给我数到一百, 从一给我数到一百。那么各位,我如果没有循环语句的话,我该怎么做呢?我是不是这样做, print 一, 然后 print 二,然后呢? print, 哎,不对, print print 三,这么以此类推,吧啦吧啦吧啦,一直干到一百,对吧?如果你这么干的话, 那就有点啊,很痛苦了,对吧?而且呢,我这个只是一百哦,我如果说不是再加俩零,你就哭喽,对不对?所以此时我们肯定不能这么去写,对吧?我怎么办呢?我想办法让它循环起来,那循环的是谁?各位,你仔细观察,我们这里面是不是都是打印语句啊? 只不过想办法让他打印的内容去发生变化数就可以了,对不对?所以我几乎就可以断定我的循环体就这地方,这里面写着这个代码,基本上就定死了,他就应该是 print 某一个数, 但是这个数呢,得是能变化的,对吧?他从一一直到一百,对吧?所以这个时候我们得准备一个变量 i, 它一开始等于几呢?等于一,对不对?等于一,然后呢,在这块应该是加上一个循环,对吧?循环,然后呢?去打印这个,谁是不打印这个 i 啊?然后你看啊,你看啊, 如果是真打印,一再来,又打印一再来,又打印,打印一,永远是一,不行吧?我是不是打印完一之后得让 i 发生一个变化,所以此时应该是 i 等于 i 加一, 对吧?来,你这时候再看 i, 一 开始等于一好了,打印一,然后呢,一加一等于二,重新赋值给这个 i 变成了二,然后上去条件成立,再打印二,重新赋值给这个 i 变成了二,然后上去条件成立,再打印三,这么以此类推, 对吧?这个循环就可以跑下去了,但是呢,循环是写完了,来跑一下,你会发现这个程序啊, 哎,我晃不要停啊,一瞬间七十二万次了,对吧?你,你这个东西虽然能数了,但是没有边界呀,我就要一百个呀,你给我七十二万个,是不是有点过分了?所以此时我的这个条件是不是得给他控制一下?什么情况下让这个循环停下来呢?是不是到一百就给我停够了, 对吧?到一百就给我停。所以当 i 小 于等于一百的时候,我是不是应该去执行这个循环, 对吧?当它等于一百的时候,我应该这样打印呢?然后一百再加个一,等于一百零一,一百零一怎么办?是不是不小于它?不小于它是不是就结束这个循环了,对不对?所以此时走,你来从一数到一百, 看懂了吧?哎,这就是我们说用 will 循环去数数,哎,程序就这么写啊,这个逻辑呢,也很简单,那为啥要有变量?因为我们这个打印里面需要用的这个变量,这个变量必须得能发生改变的,对不对?所以我们得需要一个变量,然后这里面我们的变量得能改变呢?怎么改变?通过这句话去改变, 然后怎么能让循环停下来?就是这个条件来控制他,能让他停下来,知道吧?这就是一个 will 循环的这么一个作用啊,这么一个作用。然后各位可以去思考一个问题啊,可以去思考自己可以尝试一下,你现在是从一数到一百了,那么各位,如果我现在让你帮我去计算一下,从一 加到一百,一加二、加三、加四、加五、加六,这么啪啪啪啪加起来,我想问你一直给我加哒哒哒哒,加到一百等于多少, 对吧?这个加起来应该等于多少?各位,你这个东西如果说单纯的敲出来能不能敲呢?能敲对吧?还是那个问题,如果我改成这个你就傻了,对吧?你就没法算了。所以这个时候我们肯定是想办法用程序帮我们预算,也肯定得用循环,对吧?肯定得用循环,那么怎么去循环?各位,想想这个东西从一 等一百,那我首先是不得先考虑怎么把一到一百的这些个数都给它表示出来,对不对?所以从一开始的时候肯定是 i 等于几?一开始等于一吧,然后, well, well, 什么?当 i 小 于等于一百的时候,开始执行这个循环吧,然后里面我先打印 i, 然后这个地方 i 等于 i 加一, 对吧?这个时候 i 的 范围是不是就是从一到一百了,对不对?所以此时我们其实相当于拿到了从从一到一百的每一个数,对吧?一到一百的每一个数。那么接下来 我是不是需要把这几个数的就这个,这个,这个每一个数是不是都得保留下来,对吧?每一个数的都得保留下来,那么想想, i 等于一的时候,我是不是应该把它给我留下来? i 等于二的时候,是不是应该把这两玩意保留下来? i 等于三的时候,是不是把上一次加的结果再跟这个三加起来, 对吧? i 等于四的时候,是不是应该把一加二加三的结果再跟四加起来,对不对? i 等于五的时候,应该有一加二加三加四的结果跟五再加起来,对不对?所以此时我是不是 i 已经有了,但是我缺的是不是 i 前面的这个数 的和,对吧? i 前面这个数的和,所以此时我可以在外面准备一个变量, s, 他 一开始等于零,他一开始等于零,然后我做这么一个事情,看着啊, s 等于 i 加 s, 哎,我得反过来啊, s 加 i 都一样啊,谁在前谁在后都一样。我写这样一句话,这样一句话在这,各位啊,你再去思考一下, i 是 什么?是不是一二三四五六七八九十数下去,对吧?好,那么 s 是 多少?一开始是零吧?好,我们一步一步的往下去跟一遍这个程序跑出来看看是个什么效果啊,各位, 我,我用这个,我用这个,哎,用这个给它做出来看着啊,当 i 的 i 的 值, sorry, 一个 i 的 值,还有一个 s 的 值,你就看这几个值就可以了。 i 的 值很简单,一二对吧?三, 然后呢?四五六七八,对吧?这是 i 的 变化范围。好了,接下来 i 等于一的时候,一小于一百乘以,然后这个 s 一 开始是几是零吧,对不对?零加一 对吧? i 等于一嘛,所以此时 s 的 值应该是零加一的一个效果,对吧?好,接下来 i 变成了几,变成了二,是不是到这了, i 变成了二,再去循环好了,接下来 s 的 几? s 是 不是变成零加一了?刚才, 对,所以 s 的 值应该过来零加一,然后再加上,是不还得加个 i 呢,对不对?加上那 i 呢? i 是 几? i 是 二,对吧? i 是 二, i 是 二,之后再往下走, i 变成几了, i 变成三了,所以这个地方 i 等于三, i 等于三的时候干了个什么事来这地方 i 等于三,是不是 这个地方是 i, 前面是不是 s 啊?把那 s 再超过来, s 再算了,零加一加二,这是不是不用我写了呗? 往下挪播,挪播,往后挪,挪到最后,最后 i 等于一百的时候,你琢磨是不是这个就是零加一,加二加三加一直哒哒哒哒,加九十九,对不对?加九十九,这是 s 的 值,然后再加上什么?我这个 i 的 值一百,是不就我最后定的结果, 对吧?所以此时我们可以说 s 就是 我们最终想要的一个结果。来,我们把它跑一下,看看效果。 走啊,有口算的应该能知道,就是五千零五十啊,五千零五十,也就是说我们可以在这里面做很多的循环上的一些预算,包括这种很复杂的这种式子都可以做 啊,都可以做,然后各位可以回去尝试一下做这么一个式子啊。这个是可以当做一个小作业题,就是一减二加三减四 啊,加五减六加七啊,一直减,这点,对吧?然后减一百等于多少?哎,你可以去尝试一下,还有很多啊,类似的这个题,什么一除二,然后呢?加上什么?什么什么三除四,就这种都可以算, 好吧,都可以做,你可以去尝试尝试往后挪下去,知道吗?那我就给你留这么一个作业,你可以尝试一下做一做。好吧,可以尝试一下做一做,这个就是我们 will 循环你必须要掌握的东西,然后这里面有一个点我要跟你说一下啊, 把 s 的 值跟 i 的 值加一起,再重新的复制给 s, 这种操作我们在编程里面有一个 固定的一个词叫累加啊,叫累加,就把 i 的 值累加到 s 里面去,你看我们最终运算的结果不也是吗?这不就是 i 的 值, i 的 值, i 的 值吗?把 i 的 值累加到 s 里面去,那这就叫累加运算啊。这个慢慢熟悉,慢慢熟悉。听不懂没关系,慢慢熟悉先能看懂这个程序 啊,先能看懂这个东西,然后慢慢去琢磨它。好,那这个是关于 will 循环你必须要掌握的东西啊。 will 循环很好理解啊,因为 if 如果你能听懂的话,就是把 if 换成了 will, 对 吧? if 就 判断一次, will 呢?就是一直判断什么时候条件结束啊?条件为假,什么时候结束。 ok, 那 就是微有循环要跟各位聊的东西。 ok, 那 接下来我们来讲两个特别特殊的关键词啊,一个叫 break, 一个叫 continue, 那 么咱们先不管他俩是干嘛的,咱们先去写一个程序,比方说我现在想让你 喷人,对吧?无限的去喷人,那喷人的话呢?让他输入啊,对吧?你到底要喷哪些东西来? content 等于 input 来,请输入你要 喷的内容,对吧?然后有了这个内容之后呢,我们就把它发送给呃,下路吧。好吧,发送给下路啊,发送给下路。什么东西呢?就 ctrl 啊 ctrl。 注意啊,这个打印语句呢,可以通过逗号就是把这两个东西隔开,然后一起打印出来啊,就是先是发给下路什么东西,对吧?就把这个东西接上去啊,那我们这个程序呢,就可以跑了吗?对不对?走啊,选输入你要喷的内容,对吧?这个, 呃,下路别送了,对吧?稳住。哎 sorry, 稳住是吧,苟着 苟着啊,十分钟后我们能赢,是吧?可能八分钟就就就就基地就没了啊,十分钟后我们能赢,你就可以一直搁这说,对吧?一直搁这说,但是呢,这种方式呢?不好啊,不好在哪呢?这个程序你如果不借助于外界的话是停不下来的,比方说我先想让他停, 那你怎么听?你只能去点这个玩意,对不对?你只能借助于外界来让这个程序停下来,对不对?所以此时我们需要一个操作,干嘛呢?能让这个循环停下来,能让这个循环停下来,但是呢,这个循环到底循环多少次呢?又不行,所以这个条件呢,很难给, 对吧?很难给。那么这个时候,哎,我就可以选择用什么呢?用这里面的啊, break 来做这个停止循环的这么一个操作。那 break 的 作用是让当前这个循环怎么呢? 停止,哎,立即停止啊,立即停止啊,这个是 break 的 作用,那比方说我们这个地方,哎,你可以输入一个 q, 对吧? q 结束喷人,哎,输入 q 结束喷人,那我就可以判断一下吗?如果你输的这个内容等于等于来,等于等于 q, 对 吧?你输的这个这个内容是 q 的 话,我们加上一个 break, 哎,加上一个 break, 那 这里面有一个操作啊,就两个等于号,哎,这里面的两个等于号,表示判断左右两端是否一致啊?是否一致。那你说的内容和这 q 是 不是一致啊?是一致。结束这个循环,那这个 break 会结束 循环听好啊,它不是让你整个 python 程序挂掉,它是让循环挂掉,比方说你后面还有个 print 来 print 一 二三,这一二三还是正常要执行的,那么一二三还是要正常执行的,而如果说你让程序停掉的话,那那一二三就不执行了,知道吧?所以这个地方要小心啊,它是结束循环,不是让你整个程序终止掉啊。来,我们试验一下吧,走, 嗯,下路别送了,对吧?走着啊,十分钟, 十分钟后我们能赢,对不对?好,接下来我不想跟他说了,我输一个 q, 哎,一回车看程序就结束了, 对不对啊?不是程序结束了,循环结束了,因为我这程序就是个循环嘛,对吧?循环结束,程序就结束了,所以这里面我们的 break 可以 起到这样一个作用,就是结束这个循环,对吧?那还有一个词叫什么呢?叫 continue, continue, c o n t i n v 啊? continue, 它呢?是停止当前本次循环,继续执行下一次循环啊,这个是 continue 的 一个作用。那比方说啊,我现在让你做这么一个程序哎,给我从一 数到十,从一数到十,很简单嘛,之前也写过, i 等于一, well, i 小 于等于十的时候 print 这个 i, 对 吧?然后呢,这个地方 i 加等于一, i 等于 i 加一。还没讲加等于,那这个时候 从一数到十,一点毛病没有,但是这里面有一个数字,我特别不喜欢啊,如果是碰到了四,那我特别讨厌这个四,那我想把它过掉,怎么办呢?我们就可以这样来做。看着啊,在这个地方我们可以加上一个判断, 如果 i 等于等于四了,对吧? continue, 但是呢,这里面还有一个问题,我,我想我把它跑一下你就发现了,走, 看一二三,那四确实没出来,那程序就死在这了。为啥死在这了?你琢磨琢磨, i 等于一,一小于十,哎,哎,等于四, i 等于四的啊, i 等于四吧,等于四,一就不说了, i 等于四的时候,四小于十, i 等于四, continue 是 不是 又上去了,对不对?他会,他会停止当前这一次循环,继续去执行下一次循环,所以他就相当于 来 i 等于四,四成立,对不对?成立之后呢? continue, continue 干嘛直接回去? i 还等于四,那还成立,还 continue, 就 这样在这块无限的绕上圈了, 知道吧?无限的绕上圈了,所以这个时候肯定之前必须干什么? i 等于 i, 加一对吧,让 i 给他,哎,往前走一个,哎,往前走一个,来,这个时候我们来看效果,走 来一二三,对吧?五六七八九十,对不对? i 等于四就没了啊? i 等于四就没了,所以 continue 的 作用,它是中指当前本次循环,继续执行下一次循环, 这个是 continue 的 一个含义,那么 continue 跟 break 他 们两个都有终止的意思啊,但是千万千万千万不要搞混了。 continue, 如果你真的把它翻译下来的话,它叫继续,对吧?它叫继续。 break 呢?就打断,就彻底的打断干掉的意思,你知道吧?那这俩玩意用的场景是什么呢?就是 break, 就是 在我有一些个啊,比如说我处理数据吧,对吧?处理数据,处理数据的过程中,发现有一个数据会直接影响到我最终的结果, 对吧?那我我我以后后面就不需要再进行计算了,对不对?那此时我就可以直接 break 啊,就停止循环就完事了,直接得结果了,知道吧?那还有一个叫 continue, continue 的, 一般什么地能能用到它呢?比方说我们假设吧, 就是做数据的这个检测啊,数据检测,那么检测的时候你会发现数据库里面有的时候啊,会有一些个无用的数据,无效数据, 无效的数据,你说处理它干嘛呢?没意义。所以直接肯定掉啊,肯定掉,就好比说我们发工资,对吧?发工资,你数据库里面有一百个人要等着发工资,对不对?那你得一个一个循环,一个一个的发吗?对不对?但是这一百个人不一定都在你公司,有些人他已经离职了, 有些人他已经离职了,所以离职的人不需要发工资,所以就要判断一下这个人对不对?人是不是离职了,如果已经离职了,肯定 对不对?当前这个就不需要再往后走了吗?对不对?剩下的人如果说这个人没离职,对不对?我就可以继续去发工资啊,就是有这样的一个 一个使用场景啊,使用场景,所以肯定用 break 呢。呃,用的多不多呢?还行啊,还行,但是你说他到处能用吗?并不是啊,并不是,基本上都是一些个特定的场景上会用到这 continue 跟 break 啊。 好,这俩词简单的能记住就行啊,暂时能记住就行,等咱们后面如果写到一些比较大一点的程序的时候,你才能感觉到他俩的一个 作用啊。 ok, 那 这俩词呢?就说到这,谢谢各位。好,那接下来咱们来讲一下另外一个循环语句啊,叫负循环, 这个负循环呢,在啊, python 里面,它主要是用来循环能力,可叠代对象啊,它的目标是可叠代对象,那么首先我就是在这块,我不会给你深入的去讲什么是可叠代对象,我就告诉你自附串是可叠代的。 好吧,你记这么个事,记住就可以了。自附串既然是可叠代的,那么自附串就可以被应用到负循环身上,那么负循环它的语法呢?是负来负循环, 他的语法是这样的, f, 然后呢空格跟上一个变量,然后呢 in, in 什么呢?一个可叠代的东西,至于是啥他不管,你就现在知道字母串是可叠代的就够了啊,就够了。然后这里边呢是你循环的代码循环体,那么它的作用是什么呢?是把 可迭代的东西中的每一项内容拿出来啊,然后呢挨个的数值给前面那个变量,挨个的数值给变量,那么每一个变量每一次数值 都要执行一次啊,这个循环体就咱们那个什么那个代码哎,都会执行这个代码,就好比说我们在这块啊,给各位简单的先演示一下,比方说 s 字母 a 等于你好啊,我叫赛利亚 啊, ok, 那 么接下来我就可以复来个 a 啊, a 啊, c 吧, in 这个 s 啊 in 这个 s, 什么是字母串?我说了字母串是可叠代的,那么字母串里边的每一项,想想啊,这一句话里边的每一项是不是就是每一个文字啊,对 不对?就你好啊,逗号,空格,我叫赛利亚是吧?每一个文字每一个文字都可以复制给这个前面变量的 c 啊,前面变量 c, 那 么每一次 把这个字母串里边的每一项拿出来,每一次进行赋值的时候,他都要执行一遍里面的代码,比方说我们可以在这里面打印一下,是吧?来这一次循环得到的是是什么呢?是这个 c, 哎,是这个 c, 好 了,这个时候我们就可以来玩一下嘛,右键 走看,第一次得到的是你,第二次是好,第三次是啊,然后是逗号空格,我叫赛利亚,对不对?哎,这个负循环就很有意思,他可以把字母串里边的每一项哎给他数 出来啊,每一项给他数出来,那么这个东西就比较有意思了啊,就比较有意思。那么负循环它不仅仅是作用于字母串,还要作用于我们后面要讲的,比方说列表啊,字典啊,圆组啊,这些东西,他们都适用于负循环, 都是用负循环,那么负循环咱们看到的这个,你好啊,这些玩意,那么我想问负循环能不能数数呢? 对吧?能不能数数,能不能像外循环一样从一给我数到一百呢?哎,答案是可以的,那么负循环想数数的话,记住,必须借助于这个东西来负循环想要计数啊,必须借助于谁呢?这个叫 range 的 东西, 哎,借助一个叫 range 的 东西,那么 range 是 个什么玩意,对吧? range 它可以跟上一个参数,两个参数,甚至三个参数。来,我比方说我们有一个参数,来个 n 吧,啊,来个 n, 它的含义是从零数到 n 啊,但注意这里面不包含 n, 不 包含 n, 就 比方说我简单写一下啊,一瞬间你就明白了,哎,注,十六 啊,这地方 for 来个 i in range, 比方说来个十,那么这个时候它的含义就是从零到十,但不包含十,那就是从零到九,所以它的范围是从零到九。来,我们打印一下啊, print i, print i 来走 零,一二三四五六七八九,对吧?那这个就是用负循环来去数数,但是呢,我不希望你就每次都从零开始数, 我希望你从三开始数,三四五六七八九,对吧?那这个时候怎么办呢?来这个就需要两个参数了, range 可以 给上两个参数,比如说来个 m, 来个 n, 哎,留俩参数,这个时候它的含义是从 m 数到 n, 但是依然是不包含 n, 依然不包含 n 啊,来我们试验一下啊,比方说我把它复制主式来底下走, 从三数到十啊,从三数到十,那么这时候三四五六七八九十不等啊,取不到十,所以这块三四五六七八九,对不对?来运行一下,走 三四五六七八九,对吧?所以我们发现 range 是 吧?也可以这样,哎,区间的来取啊,区间的来进行一个数数,那他还可以干嘛呢啊?还可以干嘛呢?比方说我们说 while 循环还可以这么干啊?注意,我给你演示一下,比如 i 等于一, while i 怎么呢?小于十, 嗯,就这样,然后呢,这个地方 print i, 然后别忘了看着 i 等于 i 加一,咱之前是不是这这么来写的?那此时他的范围是一二三四五六七八九,对吧?来走,来,一二三四五六七八九,那么我还可以干嘛呢? 哎,哎,这么一改的话,一,然后呢,三五七九,对不对?走 一三五七九,对吧?你说外循环,我可以通过改变变量的这个,这个,这个范围,对吧?改变这个这个数值,来来切换它的这个,呃,每一次的数据的这个间隔,对不对?那么负循环这个 range 可不可以呢?一样的 range, m n 还可以来个 q 啊,叫 s 吧,叫 s, 它的范围是从 m 数到 n, 依然是不包含 n, 但,哎, 对,从 m 数到 n 不 包含 n, 但是每次的间隔是从哪呢?是这 s 啊,每次的间隔是这个 s, 那 比方说我们可以在这看着,就拿这个程序而立为例啊,我还要,还要实现这样的一个效果,那我就可以 for for i in range 从哪呢?从一数到十,对不对?然后呢?是不是二啊?对不对?每次间隔是二嘛?所以这个时候我们再打印来 print 这个 i 来,右键走 对,一三五七九,跟上面这个是一模一样,那么他的执行过程是怎么玩的呢?就是一,然后一加二等于三,三加二得几得五,五加二得几得七,七二得九,九加二是不?十一是不出去了,对不对?所以就不去了,所以直接就一三五七九结束 啊。那这个是 range 的 效果,所以我们发现用这个 flow 循环配合 range 来数数,它好像比那个 flow 循环还要方便,还要舒服, 对吧?还要方便。你想我们用 while 循环哎,同样的程序,这个要写四行,这个两行就搞定了,而且呢,没有任何歧义,对不对?很简单,所以我们平时用的多的。注意平时用的多的是谁?是负循环,知道吧? while 循环 用的多的是什么?是死循环。因为拿 will 写个死循环特别的容易,直接 will two 就 可以了,哎,一二一啊,直接 will two 就 可以了,对不对?他写四循环特别容易啊,所以这个时候我们就知道了,还有一种循环叫负循环,他不但可以说把某一个对吧可叠代的东西里边的每一项,一个一个给你摘出来,哎,一个一个摘出来,那么还可以进行数数,并且他数数呢,还很简单, 所以这是负循环和 while 循环啊,给各位去介绍一下。那么当然各位也可以干嘛呢?拿这个负循环去做一做我们在 while 循环讲的时候的那个作业啊,那个练习题,哎,你都可以去尝试一下啊,也很简单,也都都都不难,都不难啊。 ok, 那 关于这个循环语句,咱们暂时呢就说到这啊,暂时说到这,那么经过咱们这么长时间的一个学习, 不长是吧?没没没,没多长啊,这么点时间来学习,学习完了之后,我们基本上可以说是算是把 python 的 最最最最最最基本的一些语法算是掌握啊,而且呢,这些东西基本上是所有的编程语言你要学的时候都要面对的一些东西, 知道吧,那么这一张咱们大概就说这么多,下一张咱们开始去啊,就深入的去学习一下 python 的 数据结构啊,他的这个数据类型啊,哎,把这些东西给各位夯实掌握啊。 ok, 那 这张呢,就说到这,谢谢各位。咱们第一张呢,给各位补充一个知识点啊,叫 pass, 这关键字 pass, pass 呢,这个我们斗地主的时候总用,对吧?这个东西叫过,对吧?下一个对不对?那么在 pass 里面它主要起到的是什么呢?是代码占位的一个一个作用,比方说啊,我们写一个程序,比方说,呃,就是就是 a 吧, 等于十啊, a 等于十,然后呢,我们可以做个判断,如果 a 大 于一百,我干嘛干嘛,对不对?但是现在我还没想好这个 a 大 于一百的时候我到底要做什么事,对吧?完全没想好,那我就可以先怼上一 pass 啊,怼上一个 pass, 先过啊,先过。那么当我后面想想起来了,或者说我想就是 a 大 等于十,大于十的时候,我到底应该干什么事?我再回过来再补这个代码,对吧?为了防止他报错的,防止他报错,比如说你不写,不写就报错,对吧?就是就是一个代码完整性啊,在这块 补上一个 pass 啊,暂时先过掉它。所以这个 pass 呢,就是代码占位的这么一个作用啊,它是拍出的一个关键字。 哪些关键字?所以呢,还是在这块给各位讲一下啊,而且呢,用的,呃,如果你真敲代码的时候用的多,但真的跑起来把这个代码都写完了,真运行起来的时候,这个 pass 一 般是很少很少能见到的啊。 ok, 那 就补充这一个小知识点啊。

一、选择语句基础 python 中选择语句主要有三种形式,一、 if 单分之语句二、 if else 双分之语句三、 if elifelse 多分之语句一、单分之 if 语句 说明,表达式结果为 true, 真执行缩进语句快,表达式结果为 false, 假,直接跳过不执行。 二、双分之 if else 语句说明,表达式为 true, 真执行语句快。一、表达式为 false, 假执行语句快。二、案例程序解释, 先接收键盘输入的成绩,转换成整数负值,给变量 score, 判断成绩大于等于五百,条件为 true, 真打印能上二本。单行简写 程序解释,把两行代码合并写在冒号后面,逻辑和上面完全一样。条件 true, 真执行前面 false, 假执行后面三条件表达式普通写法程序解释, 先给外一负值为二,判断变量是否大于零。条件为 true, 真给 y 二负值一,条件为 false, 假给 y 负值负。一、简写格式 程序解释,一行完成,判断负值,条件为 true, 真取前面的值,条件为 false, 假取后面的值。数字判断。案例 程序解释,输入一个整数,赋值给 n, 判断这个数既能被三整除,又能被七整除。条件为 true, 真输出 t, 条件为 false, 假输出 f。 简写案例程序解释, 直接在打印语句里面做判断,一行代码实现和上面同样的功能。四、多分之 if alive else 语句 说明,从上往下依次判断任意一个条件为 true, 真执行对应语句快,所有条件都为 false, 假执行 else 语句快,成绩完整。案例程序解释, 输入学生整数成绩六十分以下为 tru, 真输出不合格,六十到七十分为 tru 真输出合格,七十到八十分为初,初真输出良好,剩下所有分数都输出优秀成绩。简化案例 程序解释,不用写完整分数区间程序从上往下判断,前面已经过滤掉低分,后面只需要写上限定条件为 true, 真就直接对应等级。五、 if 嵌套语句 说明外层条件为 true, 真才会进入内层判断,内层条件在分 true 真和 false, 假执行不同代码。嵌套案例程序解释,同时输入资格和分数,拆分赋值给两个变量, 如果有自主招生资格为处,真在内层判断分数能报考哪所学校,没有资格为 false, 假直接提示不能参加自主招生录取。总结,一、 if l f else 后面必须加冒号,内部代码一定要缩进。二、 true 真满足条件执行对应代码 force, 假不满足就走下一个分支。三、多分支从上到下执行,匹配到第一个为真的条件就停止往下判断。四、简单判断可以用条件表达式简写,复杂逻辑就用 f 嵌套来完成。

上一节课呢,我们学会了关于基础的 if 和 ifs 条件判断,让程序呢,实现了这个二选一的个逻辑判断,那么你可以判断成绩啊,是及格 还是不及格,或者你可以判断一个人年龄是否成年。但如果我们是有一些复杂的逻辑呢?你比如说,那么现实生活当中成绩的话呢?不可能说只有合格和不合格, 你想比如及格之后,他也比如优秀良好之类的,对不对?像比如会员的等级啊,他都会存在多个不同的条件, 那么这种情况呢?没办法通过 if else 来进行实现,那怎么办嘞?答案是我们今天要引入一个新的概念,就是在 if else 里边再增加一个 if 这样一个概念。我们来看一下具体的一个逻辑。这个代码当中你可以看到,首先第一个是 if, 这里填一个条件表的式,就是你的条件是什么,如果条件成立,那我们就执行 if 的 内容,当 if 不 成立的话,我们执行 if 当不符合条件一,那么你看看是否符合条件二呢? ok, 如果符合条件二,哎,我们就执行条件二里面的内容,如果条件二也不符合呢?那我们继续往下看,是否符合条件三呢?如果条件三也不合,那我们再执行第四个 a s 啊,它的一个内容,这就是按照这个顺序一个一个判断, 只要符合其中一条,就会执行对应的数据,如果不符合呢,那就执行最终的 s, 所以 就这样的一个运行逻辑, 那这个还是比较容易理解的吧。这里要注意一个点,就是关于他的一个缩进的问题啊,缩进一定要正确,如果你的缩进是错的,那么运行代码也会报错,这个千万千万要注意,我们具体看一个简单代码吧。 这里第一步,从键盘输入我们对应的一个成绩,然后呢,这里我们就写这样写的, if 啊, score 大 于等于九十,那如果是成立的话,就执行这个内容,那如果不成呢?不成立就执行第二个判断条件, score 是 否大于等于八十,如果成立,同样执行这个内容不成立的话呢?那么继续往后翻呢?如果说 score 是 否大于等于六十成立,执行这个内容不成立的话,再执行看最后一个 else, 所以 这是最后的一个结果,也就是挨个找,如果都没匹配上,那才会显示这种结果。那接着我们试一下吧。点击运行代码走 输入乘数,成绩是一百,那么一百肯定是大于等于九十的,所以当他成立的话,他就会执行这个里面,然后程序直接终止,后面就不会再看了。也就是说他匹配的时候,如果匹配成功了,那么后续的全部都排除掉,就全部丢弃掉了。 ok, 那 我们继续试一下。比如说如果我输入个八十呢? 我输入八十,那么可以很明显的看到第一个条件肯定是不成立的吧,八十并不大于或者等于九十,所以他这个不成立。不成就看第二个条件,八十是否大于等于八十呢?答案是,呃,成立。所以的话,他会打印什么?成绩良好,那么打印完这个之后,然后程序也会终止,也就是只要匹配一个成功,其他全部都排除。然后我们再来试一下,我们输个七十, 七十的话呢,它不至于八十到九十之间,所以排除掉了。但这个的话呢, a r f 这个成立是吧?打印成绩及格,最后我们再来输入一个小于,又是什么呢?比如说我们输个三十回成,那么可以前面看到前面三个都不成立,对吧?所以只能直中执行最终的一个 else 啊,也就是不及格。所以这样你可以通过 a r f 来添加多个条件,就能完成 我们对于多条件的一个程序逻辑判断。接下来我们继续往来看,关于综合练习,用年龄来作为判断条件,那么逻辑的话呢,整体是一样的啊,这里我们来看一下代码,代码是这样的,我把前面注掉, 看第二个案例在这里啊,从键盘输入用户的一个年龄,然后呢,接下来我们就对年龄作为判断,比如说你这个年龄是否小于等于六呢? 如果小于等于六,那么说明你的年龄是处于一个幼儿阶段,那如果你的年龄是小于等于十二,这里注意啊,当小于等于六不成立的情况下,再判断年龄是否小于等于十二。 如果你年龄小于等于十二,那么你就是一个儿童阶段。如果这个也不成立,那就看你是否是年龄小于等于十七,这是青少年, 再到三十五青年,再到这个六十中年。所以同样的我们也可以测一下来,比如我们输个三岁,那么很明显是幼儿阶段,因为三是小于等于六的,所以他成立成立就会执行这一行代码,然后后面全拍出来。再来,比如说我们输个三十, 输到三十就属于什么?属于青年阶段,因为三十这前面三个都不成立,他小于等于三十五,他成立,成立就会打印青年阶段。 ok, 那 么这个是没问题的,后面排除。那我们再说个,比如说我们说个一百,那肯定是属于老年阶段,因为这里都不符合要求,那一百都是大于这些数的。 那么这样的话呢,就做了一个年龄判断,需要说明一下,你这个年龄判断的话呢,需要设计好逻辑,就是你要想清楚这个逻辑啊,不能说,你看这里边,比如我们写的什么,写的 a 值大于等于六,然后 a 值大于等于十二,这样判断可以,但是你的顺序就得改一下了,一定要注意一下这个事情, 那么这是关于我们对于年龄判断的这个案例的结草啊,虽然是比较简单的吧,你可以自己根据情况来编写多个案例。好,然后呢我们再来看下一个关于 if 的 一个嵌套判断,我在 if 条件里面再加一个 if 条件,怎么写呢?你看啊,这样 假设我判断你的 age 就是 年龄是否大于等于十八,如果大于等于十八,那就说明你已经成年了。其次第二个,我们在这个条件里边再次进行添加判断,判断你的 age 是 否大于等于六十。 前面啊,注意,首先你需要这个条件成立的情况下,然后呢才会执行这类代码,如果这个条件不成立,那么里边就不会执行了,这个一定要注意一下, 所以是首先看到你年龄是否大于十八,如果你大于十八,那么你是成年人,依次再判断你的年龄是否大于等于六十,如果也成立,那说明你是属于老年人群体,而且老年人群体他也是成年人,对不对?所以这两个条件都是符合要求的,两个条件都符合要求的话,才会执行里边这个 e、 f 的 内容, 这是他的一个相关的逻辑。那么这个城市呢?我们同样来看一下啊,在这建套的演示,首先输入个年龄,比如说我们输个,我输个三岁,那就是未成年啊,这里不成立吗?不成立那里面就不用看了,如果条件 if 条件不成立的话, if 里面内容全部都忽略,我们就直接看 s 就 好了,所以他打印的是未成年, 我们再数,比如说我们数个十八岁,那么这个条件成不成立?这个条件成立。成立的话,他会打印什么?会打印已成年,这个没问题,但是接下来下一步这一行就不对了,为什么呢?要一步判断我们刚刚这个 age 是 十八,十八,并不大于等于六十,所以这个条件成立吗?这个条件不成立,不成立的话呢?这里面内容就不会执行了。 所以当我输入十八之后,他打印的是已成年,然后后面这个就直接跳过了。好,我们再改一下,比如我们把年龄改成八十岁 啊。首先第一个问题,八十肯定是大于等于十八的,他会打印已成年,这个没问题。其次会再做另外 if 里面的一个判断,判断,如果你的 a 值是否大于等于六十,那么我们刚刚说了他是八十,八十肯定大于等于六十,那么这样的话呢?他也会把这个也一起打印,属于老年人全职可享受优惠,所以这两个都会打印, 那么这就是 if 的 一个嵌套使用好。需要强调一下的是判断条件是先判断外面的, 再判断里边的,如果外面条件都不成的话,那里面条件就不用看了,就直接忽略了。 ok, 本节课的知识点的话就讲完了,我们来总结一下核心重点。 第一个是 air 衣服的作用,它呢可以实现多条件多结果的一个分支判断,你可以添加多个条件,而不是之前的二选一。其次第二个就是执行逻辑的问题, 对于执行逻辑的话,是从上往下一个一个的匹配运行,如果匹配成功,那么程序就会直接终止了,后面的匹配结果就不会再进行了。 第三个就是它的一个完整结构,一般来说的话呢,如果你第一个最前面是一个 if 条件,那么中间的话呢,你就可以通过 if 来添加多个判断条件。 最后的话呢,你需要再写一个 else 来做结束,所以它的整体结构就是 if, ar, if。 然后呢再就是 else 中间的 if 可以 添加多个,有多少条件就可以加多少次,一定要注意它格式, 那这就是我们这一节课的一个内容。接下来我们来看一下今天的课后作业,制作一个分数等级的打分系统,让用户输入这个考试的分数,然后呢,我们设置这一二三四五五个判断区间,如果是九十五分以上顶级,八十五到九十四是成绩优秀, 然后呢七十到八十四那就是良好,六十到六十九呢是刚好及格,六十分以下那就不及格,你可以根据这个来编写一个判断程序,要求呢,你的变量名要命名规范,代码不能要报错,缩进呢要规范。然后呢,使用完整的 if l if l 四结构。 当然如果在写代码过程中有碰到逻辑报错啊,条件报错啊,或者缩进报错的,都可以在评论。下一节课我们来学习逻辑上符这个 and or not, 让判断呢更加的灵活。

hello, 大家好,欢迎来到 star 学编程课堂。我是 star, 今天我们来写一段超级实用的代码,用 python 做一个年龄判断器,看看你是不是成年人。 上期我们是用出生年份算的,这期我们直接输入年龄,是不是更直接了?首先呢,我们先答应一个欢迎语,欢迎来到 star 学编程。 然后我们要和他互动起来。先问问对方的名字, name 等于 in, 请输入你的名字。 迈着最关键的一步,问问年龄。注意啊, in, two 进来的都是文字,我们要用 in 把它转换成数字,所以我定义了一个变量叫 yes, 可以是年龄缩写, yash 等于 it input, 请输入你的年龄。好,现在名字有了,年龄也有了。我们来做个判断,用 if 语句, 如果年龄大于等于十八, if y 大 于等于十八。注意,这个冒号一定要有。如果是成年人,我们就答应 print if may, 你 是一个成年人。欢迎来到 star 学编程课堂。 那如果不是呢?加个 is, 然后打印 print f name, 你 还是一个未成年,但仍然欢迎您来到其他的学编程课堂。 后面呢,我们还可以加更多的判断,比如加上性别判断,或者判断是不是学生, 几岁,你用起来想怎么判断就怎么判断。我们来运行一下试试。比如输入名字 star, 年龄十八,他说你是成年。再试一次, 名字 star, 年龄呃,十七,你还是一个未成年,但同样欢迎你。 好了,这就是今天的 evese 挑战,判断简单吧,记得点赞关注我们,下集再见!

好,那我们接下来看下面一个知识点,这些知识点,呃,其实非常非常重要,为什么呢?因为我们在写后续代码的时候,不断的需要使用到 if else, if else, if 这样的一个逻辑判断啊。那大家看一下,我这里给大家画了一张图, 我需要大家根据我这张图完成,完成我啊对应的一个逻辑。比如说你去取款,选择取款操作了,那这个时候 他就要提示你请输入取款金额。好,那你把金额输入进去以后,第一件事情他就要判断一下你的余额是否充足, 如果你的余额够,他就吐出钞票,那你余额不够,是不是提示余额不足?好,当你钱取出来以后,这个时候他在问你,你是否要退卡?如果你选如果你需要退卡,他就是给你退卡。如果,否则呢? force 呢?他就做其他操作, 能理解吧,其实这也就是一个 ifelse 的 一个练习。好,那我就快速带大家完成一下整个实现的一个代码过程,来一个 test。 零六, 大家记得我刚才的逻辑啊,首先我第一步是啊,取款操作,提示取款操作。好,我一边解释一边解释呢,一边写代码,我们一起来看啊。嗯,执行取款操作, 行,取款操作。好,那执行取款操作以后,第二步需要做什么呢?需要判断用户余额是否充足,判断用户余额是否充足,也就说你钱够不够, 你如果取一百块钱,你还没有一百块钱,那肯定不行啊,对吧?好,那这个时候呢,假设我卡里面有一百块钱,假设我卡里面有一百块钱,那我把它挪到下面来吧, 有一百块钱,那这个时候我就要提示一下用户要取多少钱?来一个音符的,请 输入取款,取款金额。好,有了这个取款金额以后,我就要给它做判断了,那取款金额用英文叫什么呢?其实这个英文还挺长的,叫 with the draw, with the draw money。 好,我就写,写的清楚一些啊,当然,你如果不会写这个单词,你可以写一个其他的含义,比如说你知道他的取款金额就好。那有了这个取款金额以后,我就要开始判断了。下划线,对,有哥们说啊,你可以用下划线,这样子 也可以。都可以啊,我刚才写的那那个叫做小驼峰命名,那这个叫下划线命名啊,都是可以的。好,那这个时候事先判断,如果我的 money 大 于等于取款的金额,那说明什么呢?说明取款余额充足 取款余额充足,对不对啊?好,那大家想 else 说明什么? 说明取款余额不足取款余额不足。好,那我们先写不足,不足。好写呀,不足。我图片上提示什么?提示余额不足,对吧?那你就直接提示余额不足嘛。 亲,您的余额不足,您的余额不足。好,那如果取款余额充足怎么办呢?取款余额充足怎么办?兄弟们, 取款余额充足,那首先要减掉,减掉你的啊,减掉你的金额啊,所以首先首先要减掉 卡里的金额,不是把卡减掉,是数值给减掉,减掉卡上的金额,对不对啊?你要把卡里的金额给减掉呀。那这个时候大家知不知道我们可以用那个复合复制运算符呀? 因为我要在自身的基础上发生改变嘛,对不对啊?大家还记得吧,一个变量在自身的基础上发生改变嘛?赋值啊,复合,复合,赋值运算符。 哎呀,拼音老写错,好有有,哥们夸我英语真厉害。哈哈,我们不是学英语的,我们学编程的。 好,那这个时候呢,你要知道一个特点叫自身,自身一定是在自身变自身基础上发生改变,我就可以用复合复制计算符简等于我建议大家写代码的时候,一定要刚开始就要写规范啊,为什么呢?有的同学可能不喜欢空格,你就喜欢写成这样子, 你说他错吗?他不错,他没有错,但是他严重影响阅读呀, 而且呢,他其实下面也给了你一个什么,给了你一个这个,给了你这么一个波浪线,他也不建议你这样写呀。所以呢,大家记住啊,刚开始一定要规范啊,这样子你就养成了一个好的习惯。好,然后我们再给用户提示,嗯,清, 请取走您的金额,然后呢,余额为余额为好,我们把这个余额 money 给它放进去,我们看一下,当然你要把它输出来的话,你就要来一个 f 好 了,我第一部逻辑就写完了,第一部逻辑就写完了,吐出钞票了,对不对啊?然后第二步问用户是否要退卡, 如果他要退卡就给他退,不给他退呢?他要不退卡,我们就执行其他操作。好,回到这边来,紧接着我们写第三步询问用户, 询问用户是否需要退卡,那询问的话很简单,大家还是要用音符的。清, 需要只需要退卡吗?好,那既然是需要需要或者不需要退卡呢?我们就可以给他来一个,是这个时候给他来一个 y, 或者来一个否, 这个时候来个 n, 好 让他输入,当然用户输入以后你要用变量接收啊,有些单词呢,我建议大家这些单词你就写代码的时候,你用的,用的,你就把它记住就好了。比如说用户的选择就叫 choice, 我 看一下你做了什么选择,对不对啊?那这个时候我就可以判断你的选择了,如果你的选择是需要退卡,或者是小写的需要退卡,对吧?我都认为 你需要退卡,那这个时候呢,我就执行。当然,其实我建议大家写代码的时候先不要着急的,先把 print 写出来,不要着急写 print, 这个时候我们说退卡,先写注视,然后紧接着我们先写 else, 因为它是一个整体执行,这里呢执行其他操作, 这样写的话我们后期就不容易出错。好,来一个 print, 这里呢啊,请退卡中,退卡中。 好,这里我们就写出来一个 print, 执行其他操作,执行其他操作。 ok, 好 了,那其实我们的代码就写完了, 这个代码如果大家自己去写的话,你就可以照着我这个图想。哎,我为什么要画这个图呀?我画这个图就是想告诉你我代码处会怎么走, force 会怎么走,大概就这个含义,让我们快速执行。查看一下执行逻辑。好,请 输入取款金额,大家看,我一共就一百块钱啊,我一共就一百块,我输两百,你看欠你的余额不足, 根本就没给我取钱,对不对?那问我要退卡吗?退吧,哎呀,反正也没钱,退卡中,太穷了。好,这个时候呢啊,我取一百块,大家注意,我的判断逻辑是 大于等于,能理解吧?大于等于一百块是成立的,那如果成立,他就会把我卡里的金额给减掉,然后我取走我的金额,然后给我显示一个余额,对不对啊?好,回车 你看。亲,请取走你的金额,余额为零,卡上一分钱都没了,问我需要退卡吗?不退 好,执行其他操作。 ok, 所以 这个逻辑呢,我就不给大家 de bug 了,跟我这张图是一样的含义。大家在写完代码以后呢,你可以自己多练习练习 de bug 调试,就看一下程序如何执行整个逻辑过程的。

本期内容我们来讲一下 python 的 变量与数据。在 python 编程的世界中,一切操作的源头都离不开两样东西,数据与存放数据的容器,它们之间关系就像标签与物品。如果把程序做一个处理信息的工厂,那么数据就是流动在其中的原材料,这里是一个数字变文字或是 语法的判断,而变量则是贴在这些材料上的标签,或者说是临时的储物盒,通过变量我们才能轻松的找到、修改并附用这些数据。 python 的 特点是动态同一个变量可以先存整数,再存自互串,非常灵活,掌握变量和数据,你就掌握了让程序记住和操作信息的能力,相当于拿到了驾驭程序逻辑的第一个钥匙。 让我们回到这个语法语句当中。语法语句呢?它是专门去解决解决哪种程序结构的,是不是想要去通过条件去控制程序执行流程这种情况的时候,对吧?咱们就可以去选用的一种语法结构。那么讲到它,其实是有三种使用法 的,第一种就是 if, 单独的,这个 if 跟上条件所需要去执行的代码 ok, 就是 两行代码完成的一个哎,单分支,单分支的 if 语句, 他这两行代码是可以直接去写的,就是只有一副,没有其他的啊,单词好,这是第一种情况。那么第二种情况呢,就是双分之,咱们可以通过 if else 去控制,控制两种情况的时候来用这个比法来实现。那么还有一个多分之,多分之呢,是 三种及以上的情况我们会去用到的啊,例如说,哎,我们对于年龄这个判断是,哎,把他的这个判断情况分成了四种,对吧?老年人、中年、 青少年以及未成年。好,那么这就是对于某一个数据处理的结果分成了四种情况,四种情况,那就是属于满足三种及以上, ok, 那 么就选择到的是一个多分之, 那么像我有去讲到的这三种啊,一五句的写法,我们要根据啊,根据你判断的结果到底是一种情况,还是两种还是三种而去选择。哎,我要用哪一个?我是用 if else 呢?还是说 if if 这个多分制的一个写法,对吧? 所以我们在作业当中呢,我们是一定要去先把一件事情搞明白的,就是我如果说对吧,要去判断用户名和密码,那我判断的结果是有几种情况,如果说是两种,对吧?你比如说他判断用户名是这个,则登录成功,判断名如果说哎是其他的,则登录失败, 其实就是给到你两种要么成功,要么失败的,哎判断情况,所以这里毫无疑问咱们一定要用 if else 去解决啊。我们来讲到 思路啊,讲咱们这个剪辑思路,咱们第一个需要去哎,确定自己,一定要去确定明确啊,明确我们判断之后的结果有几种 情况啊?然后根据这几种情况去选用,选用 if 他的一个呃 写法。 if 写法是不是?那这里我们选用到的是 if, 结合那个 else 去用就可以去解决了。好,那么它怎么去用呢?它是预设固定的用户名和密码,是这个啊,就是一二三和密码,一二三是不是?然后需要通过输入 输入函数去输入两组数据,一个是用户名和密码。好,我们这里就获取到了,哎,一个预设的用户名和密码,一个呢是你所去输入的用户名和密码,这里就是有两组,两组好,我们就拿着第一组和第二组去比, 是不是一样的第一组密码,拿着拿着和这个第二组的密码去比,哎,看一下是不是一样的,如果说都是一样的,则成功,如果说其中有一个是错的,则失败。 那么其实我们在这里去进行一次判断之前,还要去解决一件事情,就是输入,输入操作就是你去输入几次,两次,所以我们这里请输入用户名,好,这里呢给他去保存一下, 再来,这个是密码,他的密码呢,不是纯数字来的,所以呢还是需要去, 他就不需要去转换啊,他不是纯数字来的,就不需要去转换。你像之前我们在对于年龄进行判断的时候,他是纯数字 的判断,所以咱们加了一个转换操作,所以同学们啊,就是在用到输入函数的时候,一定要去考量一下他那个数字类型的问题,对吧?好,那么这里在构建条件时,我第一个我要去看一下输入的这个姓名 name, 这个变量里面保存的姓名是不是等于我所去预设的这个,哎,一二三,这个一二三,记得去加上引号啊, 他是一个什么呢?他是一个数据,什么类型的数据?那肯定是字母串类型的数据,所以加上引号,好,那么这个是第一个,第一个条件啊, 咱们输入的数据和预设的数据必须得是一致的,那么第二个呢?第二个就是 w p、 w d, 就是 所谓的输入的密码和所去预设的这个 密码也是需要一致的。好,他也要一样,他也要一样。你说两个条件都得成立,我们才会去得到最终判断的结果,这里都需要需要一个。哎,逻辑计算符是按的去进行连接, 上课是不是有句讲过的, and 去进行连接,两个条件都成立,则,哎,会怎么怎么样,是不是?好,这里一定要注意啊,我们这一整块就是 e、 f 后面的整个的一个条件,这一大块是属于一个条件来的,这一整个条件他会得到一个 t 或说 f 的 结果,只是说这个条件的构成呢,可能分成了,哎,条件一和条件二两个同时去进行判断, 得出最终结果。好,那么在这个条件的后面呢,一定要去接上冒号,这个冒号呢,是打在这一整块条件的后面,不是说啊,不是说这里,这里加个冒号,这里也需要去加个冒号,比如说老师,这也是个条件啊,这也是个条件,条件后面加冒号,哎,就得这么去写。并不是,并不是, 咱们是这一整块都是算作是一个条件,一个整体条件来的,只是说他被拆分成了一第一个和第二个这样子,所以后面直接打一个冒号就行了啊。好,然后这是第二个关键点,就是说我们回车之后,他自动会有四个空格的距离,对吧? 这个四个空格的距离我们会去跟到一些输出语句,只有输出语句你才能从控制台看出来。哎,咱们这个条件呢,是成立了,有这个运行结果,如果没有输出语句的话,你可能 都不知道,对吧?到底有没有跑到二十二行来?所以呢,你去进行一个简单的输出,登录,成功输出一下。好, 这里呢?来,我们去讲一个啊,讲一个四个空格的这个写法。上上节课的时候是有去提到过,这里四个空格其实就好像是我们在创建这个项目文件夹 一样,你像我们这个文件夹下方去放了四个 py 文件,是不是?嗯,那为了去表示这个文件夹是 py 文件的上级, 所以呢,你看它这里是不是会有一个一段距离,一段距离,这一段距离呢?就表示我 py 文件是你文件夹里面的字文件,对不对?就是去表示一个 子关系,上下关系,你是上,我是下,所以我们在这里给他收起来的时候呢,哎,那个子文件就看不到了,展开的时候,包括你看这个衣服与具这个文件夹,对于他的上级文件夹,你看他是不是也有一段距离?其实他的这个空格呀,他表示的是一个层级关系,哎, 我是下级,你是上级,我听你的,你条件成立, ok, 那 我就就去执行。那同时呢,他也可以理解成欠套 嵌套的意思。嵌套之前我们有去接触过,干什么呢?啊?是讲那个列表,对吧?里面去嵌套另外一个列表,如果这是一个列表的话,里面再去嵌套一个列表,是把这个列表放到 哎,大列表当中就好了,形成这个一层套一层嵌套的,哎,这个数据结构是不是好。那么这个嵌套呢? 你可以理解成咱们的这一行代码就是被套在了 if 它的下方,被嵌套在 if 这一行代码的下方,因为什么呢?这段距离啊,对吧?好,那么讲到四个空格的距离, 可以理解成嵌套,可以理解成嵌套啊,所有代代空格的都是具有这个嵌套结构的,明白, ok, 好, 那么就讲这行代码是被嵌套在衣服居下方的, ok, 好, 那么这里是第二个,就是讲的格式问题啊,格式问题, 他有这么一个概念,一层套一层,哎,你这个代码里面再套一层,哎,我这个代码是不是。好,那么这里是一个 iface 去解决的啊,咱们就直接加一个 iface, 后面不需要去加条件。这个,呃,朋友们写的时候是没有任何问题的,我们就直接过了啊,咱们呢就是把这个,哎调 不成立,需要去输出的,他去打印上,这里呢是直接直接去输出的 print, 那 么两者都成立都相同才会去登录成功,只要有其中一个是错的,那么是不是就到这里来了,所以我们可以直接去提示用户名或者密码错,请重新输入了,对吧? 好,那么我们就可以去运行了啊,这里呢,我们来个正确的去试一下每一个分支运行结果是否 ok 啊? p w d, 一 二三,你看这里是不是执行到第二十二行,这是因为条件它是成立的嘛?这个输入的数据是不是它输入的数据 是不是它? a, 再去运行一下,来个一二三,再来个一二三,很明显是错误的,所以来到了 a s 它的一个执行。好,那么这个是第九题啊,这个是第九题,第九题, 第九题。老师之所以给您讲到这个欠套是因为什么呢?是因为他是这道题是真的可以用用欠套来完成的。什么欠套?一副欠套 来完成的,哎,一副欠套是什么呢?一副欠套,同学们不知道的话,列表欠套, 大家知道吧?长什么样子?中括号里面再去套一层中括号,这就叫列表嵌套,是不是啊?那么 if 嵌套呢?它可以改写成这样子,先通过一个外层的 if 去判断用户名是否是正确, 当用户名正确的前提下,他的,哎,四个空格的这个位置,再接一个衣服去判断密码是否是正确的。 ok, 那 么此时我们正进行的输出 是被套了几层,你们看一下第三十二行的这个输出是被套了几层,你们看一下是被套了几层 就相当于,对吧?如果他被套了几层,那么他就有几个,几个上几,是不是?大家看一下他这一行被套了几层?对,对啊,看一下 三层,两层,到底是三层还是两层呢? 嗯,两层吧。第三十一行套在三十行的下方就是算一层,然后他又被套在三十一行的下方,你看这里是不是距离也有一段距离,那他就是什么呢?两层吧,一层两层,对的,这个 这个距离和这个距离很像咱们这个目录结构啊,这个这一行就相当于是最大的那个文件夹,这一行呢,相当于是咱们这个 excel 这个文件夹再往下面走的这一行呢,就是批文文件夹,这里有一段,这里也有一段,是不是几乎是一模一样的?好,那么这种写法,对, 那么这种写法的话,像第三十二的这种写法,三十二行如果说他想要去执行,那么一定是三十行的条件成立,并且三十一行的条件也成立了,前提,那么就是两个条件都成立,则登录成功。是不是? 那么他如果第一层就是外面最外面这一层,他去接一个 s, 怎么去写?怎么去写?用户名是否是 一二三?如果不是一二三,则可以更加明确的提示他是用户名错误了,请输入,请重新输入, 对不对?好,如果在里面这一层呢?你看外面这一层, a s 是 跟着外面的 f 走的,那里面这一层呢?再写个 a s 是 需要跟着里面这个 f 走的。同级码 里面这一层呢,则是密码错误,请重新输入。为什么 a s 是 不跟着他走?条件不成立,是否就是密码错了呢?密码错误,请重新输入,所以它这里呢, 对比我们上面这个程序可能会更加严谨一些。严谨在哪里? if 这个输入不能注是吧?好严谨,在哪个地方?你像我们在输入用户名的时候,用户名如果这一层错了的话,他提示的是,你看 回车,你看他提示的是什么呢?用户名错误,请重新输入。那如果说是密码这一层错了的话, 密码我是不是输入错了,那么他将提示的是密码错误,他会,哎,更严谨一点,提示你到底错在哪了?是不是? ok, 那 么像我们第一种方式是没问题的,第二种方式呢,是讲到 if 嵌套,怎么个嵌套法?是不是 if? 哎, if 里面再放一个 if, if 里面再去放一个 if, 这一个写法其实不是特别常见 啊,那么我告诉你的是什么呢?哎,是有这种写法的,同学们是可以这样去实现的,把他们这个思路打开思路打开, if 里面呢?再去放一个 if, 那 么就是双层 if 外层的条件成立, 进入里面这一层其实是进不去的,对吧?嗯,你相当于是什么呢? 相当于还是那两个圈吗?对吧?只有通过条件成立,你像我们要进入到里面这一层,就相当于他有一个门槛,他有一个门在守着的,只有通过这一扇门才能进入内部,只有进入内部才能来到这个小圈 内部,哎,来到这个条件这个门,这个地方,从而进入内部去,对吧?他是一层一层,你先进入外层,再进入里面这一层,你先把外面这一层判断成功,再进入里面这一层去进行判断,他是这个嵌套的一个结构啊。好,条件成立的时候去判断第二个衣服, 第二个衣服, ok, 好, 这就是一个写法,提供一下这个思路啊,同学们, 之后呢,有一些,对吧?用的上的一些场景呢?你就可以去参考这个思路,去多多思考一下。好吧,拓展一下。好了,那么第九题就讲到这里了。

今天给大家带来了一套全新的派送二零二六课程,从小白到大神,手把手教你学习编程。在过去的一年里,我认真整合了关于派送的所有知识点,并对整个学习框架进行了更全面的升级。整个升级路线分为四大板块, 分别是语法基础篇、语法进阶篇、案例实战篇和新手福利篇。好,欢迎来到 python 基础课堂。本节课我们要讲的内容就是运算符。先来看到算数运算符, percent 中算术运算符主要是用于执行基本的数学操作,比如说加、减、乘、除,那这些运算符是直接应用于数值类型上执行相应的计算。我们来看一下 第一个算术运算符呢,是我们熟悉的加号,它是用于表示两个数相加, 比如说现在有一个数一等于二, 再来一个数二等于三, 如果我输出 n 一, 加上 n 二, 得到的结果就是两数相加为五。既然有加的话,那就也有我们的减, 它呢是表示一个数减另一个数。 看一下,现在有一个 n 一 等于六, n 二呢等于三,输出 n 一, 减去 n 二, 那得到的结果也就是六减三等于三。 除了加减之外,我们还有乘除乘,在我们代码当中,它是用一个星号表示, 它是表示两棵树相乘。 那现在来看一下,还是用我们 n 一 等于六, n 二呢等于三,输出 n 一, 乘上 n 二, 得到的结果就是我们两数相乘的结果。我们的除比较特殊,有两种,一种是普通的除,我们用一个斜杠表示, 它是第一个数,除以第二个数 还是 n 一 等于六。 然后呢, n 二等于三,输出 n 一, 除 n 二, 会发现它返回的结果不像我们之前那样是一个整数,而是一个负点数,所以我们一条斜杠的除,它返回的是负点数结果。 那如果是两条斜杠的除呢?它代表的是整除, 它同样也是第一个数,除以第二个数,但它返回的会是一个整数, 那它又是如何取整的呢?我们来看一下, 假如还是 n 一 除以 n 二,只不过我们将这个 n 一 的值改成七,这里呢,改成两条斜杠, 得到结果会是多少?会发现它只有一个整数。二,如果我们只用一个斜杠,它得到的会是一个小数结果,二点三三三三, 那它到底是按照什么样的规则去取整的?我们这样它是不是有可能是直接去除小数部分,也有可能是四舍五入,因此我们再用一个八来验证一下, 如果是数字八,那它四舍五入的话,我们这个二点六六六六六, 他是不是应该是变成三?但是我们会发现这里整除的结果,他依然是一个二,所以他取整是向下取整, 什么意思呢?也就是取不大于原数的最大整数, 我们的正数比较好看,正数就是直接去除小数部分,那假如现在它是一个负数, 我们得到结果会是负三,因为它负二点几不大于它的最大整数,也就是负三。如果你取负二的话,它是会大于我们负二点几,所以我们负数是需要注意一下的。 既然讲讲了取整,那我们就还有一个取余数,用百分号进行取余, 它是返回两个数相除的余数, 我们可以借助一个公式进行运算,余数呢,一般是等于被除数 减去除数乘上取整除结果。 现在来看一下输出十对三取于, 按照我们这个公式来说的话,它是不是我们被除数十减去除数,三十除以三整除结果应该也是为三,那就是三乘三 十减去三乘三,得到结果应该是为一。我们来运行看一下,是和我们预期的一样一,如果现在这个十,它是一个负数, 那就是负十减去我们三,此时它的取整除结果应该是多少? 负十除三是不是负三点几几几,那它取整向下取整为负四,因此我们这里是负十减去负十二,得到结果应该是为二, 此时运行得到结果也正如我们预期。那如果是十除负三呢? 我们被除数,现在它是十,但是我们除数,它变成了负三, 取整除结果十除以负三还是负三点几几几,那它向下取整为负四,十减去十二,是不是等于负二,得到结果也正是负二。 那假如现在两边都是负数,负十对负三取于 我们这里改成负十,后面呢是负三,它们取整除结果是等于三点几几几,所以这里应该是变成三 负十减去负三,负三乘三是不等于负一,可以看到它得到结果都正如我们这个公式所算出来的,这就是取余。 那我们还要讲一个,就是我们的密,它一般是用两个星号表示, 这里是将第一个数作为底数, 第二个数作为指数 进行密运算。 看一下输出 我们的二作为底数,它的指数是三,是不是就是二的三次方,二的三次密, 他得到结果应该是二乘上二,再乘上二, 我们的指数就是说要将这个底数乘几次,得到结果应该是等于二乘二乘二为八, 看一下它得到结果也正是我们的八。那如果是三,它的二次密呢?是不是就是三乘两次?所以它这里应该是三乘三, 三乘三,得到结果等于九,运行看一下正是符合我们的预期。 如果我们想要开平方的话,也可以通过直接修改后面的值来实现开平方的需求。比如一个数,他的一次方是他本身,那他的零点五次方,也就是开平方四分之一次方呢?也就是开四次方。 我们来看一下,现在是四,他要开平方,我们就将他的指数改成零点五, 是不是得到开平方的结果?二、我们要注意,在 python 的 算术运算中,只要涉及浮点数,那它的结果也通常会是浮点数, 只要涉及浮点数,结果也通常是浮点数。 来一一举例看一下,比如我现在要输出一加上一点零,这里面是不是有一个浮点数,或者说我要输出四减去 二点零,还有呢?输出二乘上三点零, 输出我们四除二点零。 现在来运行一下这几个,会发现它得到结果都是一个浮点型的数据。我们比较容易混淆的就是整除, 看一下这个整除它得到结果又是什么?它同样也是涉及了浮点数, 可以发现我们整除也会带上一个点零,但是我现在如果是五除二点零,它得到的结果会是二点五还是二点零呢? 可以看到依然是二点零,因此它是在先得到整除结果之后再加上点零, 这是我们算数运算中比较需要注意的一点。并且我们算数运算符它是有优先级的,和我们数学运算比较像, 先乘除,后加减。 那同级运算呢? 是从左往右, 当然我们也可以使用括号调整优先级。 现在来看一下, 我们要输出一段很长的式子,十减去八,他要除上一个括号,三加一。 然后呢又写上一个乘六, 后面整除一个二,加上十五,再对二取余,再加上一个密。 那我们是不是先算括号当中的,先把三加一算出来, 看一下它是一个什么样的运算步骤。三加一算出来等于四,现在没有括号了, 那我们这里还需要补充一点,在乘除之前还有一个先 密再乘除,最后加减,所以我们要先算这个密,二的三次密是不是等于八? 算完密后,这里只有加减乘除。我们先来看乘除,从左往右,八除四,是不是二点零,二点零乘六,十二点零, 十二点零,再对二取整除,是不是为六点零, 后面呢?十五对八取,得到结果是不是七? 好,现在只有加减法。我们从左往右算十减去六点零,里面只要包含小数点,那我们的结果就是有小数点的,所以它这里是四点零加上七, 四点零加上七,是不是十一点零?看一下这个输出结果是不是和我们刚刚算的一样,得到结果十一点零。 接下来看到本节课的第二个部分,赋值运算符。在 python 中,赋值运算符主要用于给变量赋值,在使用的时候,将右侧的值赋给左侧的变量,右侧呢,也可以在进行某些运算之后,再赋值给左侧的变量。 我们来看一下, 首先要讲的第一个赋值运算符,我们之前已经接触过,就是一个等号,它是简单的赋值运算符, 由于之前在变量当中我们已经提到过它,那我们这里就简单的演示一下, 我们的等号作为负值运算符,它在这里不是表示等于,而是将右边的值赋值给左边。比如说我们直接赋值就是 num 等于十,输出这个 num, 它得到结果就是这个十,那我们同样可以将一个变量的值赋给另一个变量,比如说这里再来一个 num 二 输出, 是不是同样可以得到这个十?我们之前讲的第三个,它还可以将运算结果复制给变量, 比如这个 result, 它接收的就是我们的 num, 加上 num 二输出, 得到结果呢,就是这两个相加二十。这里是我们之前的内容,我们简单带过。再来看一下第二个加等于,这是加法负值运算符, 比如说现在有一个 x 加等于 y, 那 它就相当于 x 等于 x, 加上 y。 我 们来看一下现在有一个 num 等于一,我们再来一个 num 加等于二,输出 num, 得到结果是不是就三,它这里就相当于 num 等于 num 加上二, 它原先这里的值是不是为一,所以它得到结果就是一加二,先执行右边,然后赋值给左边,我们一加上二,得到结果是三,因此它这里输出的也就是三。 既然有加法负值运算符,那么相应的呢,就有减法、乘法、除法。我们都来看一下, 比如说我把这个加号改成减号,将它改成乘号,改成除,改成整除,或者是我们之前还学了一个取余 以及我们的 me, 这几种都是有的,那这种是不是叫减法, 这个呢叫乘法,下面还有除法,整除、取余和我们的 me 与之类似的,后面也要进行相应的更改。 x 减等于 y, 是 不是就相当于 x 等于 x 减 y, x 乘等于 i, y 就 相当于 x 等于 x 乘 y, x 除等于 y, 就 相当于 x 等于 x 除 y, 那这里 x 整除等于 y, 就 相当于 x 等于 x 整除 y, 我 们这里呢,改成取于后面就相当于 x 对 y 取于。 那如果把这里改成我们的 me, 相应的后面也可以也会变成我们的 me。 一个个来演示一下。先来看减法赋值运算符, num 等于三, 减等于一,它是不是相当于 num 等于 num 减一,那我们先算右边的,现在这个 num 是 三,三减一,是不是得到结果二,并且呢,复制给这个 num 输出, 得到结果为二。如果是乘法, 现在有一个 num 等于三, num 等于二, num 乘等于三,输出结果, 这里是不是 num 等于 num 乘上三,那得到结果就是二乘三 为六,以及我们的除法, 现在呢,有一个数字等于六, 然后呢,我们让它除等于二,此时输出 它是不是相当于 num 等于 num 除二,得到结果三点零六除二,以及我们的整除 还是一样的,我们第一个让它等于七,然后呢,让它整除等于三,输出 它,这里是不是就相当于等于我们的 number 整除一个三, 得到结果二取于。同样也有这种运算 来一个 num 等于十,它取于等于三,是不是就十对三取于相当于我们 num 等于 num 对 三取于 得到结果,十对三取余等于一,是不是最后还有一个幂负值运算符, 第一个数让它等于二, 幂等于三,那就是相当于你这个 num 等于我们 num 的 三次幂 输出,得到结果 是不是二的三次密等于八? 那像我们刚刚说的这几种呢?它都是叫做复合赋值运算符,在 python 编程当中在适用,而且 能够提升代码清晰性的情况下,我们应该优先考虑使用复合赋值运算符,因为它们能够使代码更加简洁和易读。 但是我们需要注意,复合赋值计算符只能用于已经存在的变量,因为他们的工作方式是首先访问变量的当前值,然后呢再执行指定的运算,并且将结果重新赋值给该变量。就比如说 我现在还没有任何的负值,我直接就写上 num 加等于三,此时你要输出它, 那它就会抛出异常,告诉我们这个 num 它还没有被定义,或者说呢,我要在这里我写个十加等于三, 此时运行同样会抛出一个异常,这就是我们需要注意的点。 接下来看到本节课的第三个部分,输入函数。在 python 当中,程序获取用户输入数据的功能通常被称作输入操作,这一功能是通过我们的内置函数 input 来实现的。 那我们在 python 当中来看一下, 首先看到语法格式 input, 然后呢在后面有一个括号,括号当中我们可以放提示信息, 这个提示信息一般默认为 non, 看一下它是一个提示信息, 一般呢在控制台显示 它是用来提示用户输入什么样的数据的,当然我们省略的时候,它就会默认为呢?那现在举个例子,比如说我这里有一个 name, 我 需要用户来输入, 那就在这里提示请输入姓名, 下面我们再输出一下这个 name, 好, 运行之后会发现我们的提示信息在控制台显示出来了,此时我们输入姓名小 a, 按下回车之后,它就会执行我们的下一行输出这个小 a。 那 我们要注意在 python 当中看一下,注意, 在 python 中 input 函数,它默认将用户的所有输入视为字母串类型。 那就无论你现在输入的它表面上看上去是什么,但是它最后得到的呢,都是一个字母串类型。 看一下,假如我现在是一个 n 等于 input, 请输入数字 print, 输出这个 n 和它的类型。 可以看到我们在这里输一个整数一百,它得到类型都是一个字母串类型,因为你的输入就相当于是这个样子的。 就像这样,在我们两个引号之间,那它输出的结果,虽然你字面上看它是一个整数,但它实际上是一个字母串类型。接下来看到本节课的第四个部分,转移字母。 在我们 python 当中,转译字母通常适用于在字母串中表示那些具有特殊含义的字母,但是我们转译字母它种类繁多,我们本节课呢主要介绍几种比较常用的转译字母。 第一种,杠 t 制表符, 那它是在字母串中插入一个制表符, 将光标移动到下一个预定的位置, 从而呢实现纵向对齐。 现在看一下,我们输出一个字母串 w, 然后呢在后面再输一个 a, 但是我们在中间插入了一个制表符, 会发现它们中间出现了一块空白,这就是因为我们光标已经移动到下一个预定位置,在这里插入了一个制表符,此时要是我们前面输入两个 w 呢,会发现 我们 a 的 位置还是没有变,因为我们下一个光标固定是移动到这里,而这里加上两个 w, 就是 一个制表符的位置。 那假如我差三个 w, 差四个 w, 会发现当我们差到四个 w 的 时候, a 被移到了下一个位置,因为我们这一个制表符的位置它已经被填满了, 所以我们光标下一次就是从我们第三个制表符的位置开始。 那假如我在这里差五个 w, 会发现 a 的 位置是不是还是没有变, 那当我继续加的时候,当我这里加到八个 w 的 时候,会发现我们的 a 才会被继续往后推一个位置,这就是制表符。 接下来再来看到换行符, 我们换行符一般是 n 表示,它是用于在文本中指示新的一行开始。 比如说我们现在输出一行内容,这是第一行, 然后呢在后面这是第二行,这是第三行。如果我们直接输出的话,它们就是在一行当中显示,但要是我在这里插了一个换行符, 会发现它是不是这三行显示在了不同的行数,这是第一行,然后换行,这是第二行,换行,这是第三行。 我们要讲的第三个反斜杠符号, 通常呢我们在字母串中用两个反斜杠符号表示一个反斜杠, 现在假如要输出一个文件,它的目录输出一个文件的路径,我们如果只使用一个反斜杠的话, 看一下 会发现它其中是不是出现了转移字符,比如说我们这里出现了制表符杠 t, 那 如果运行的话,它就会变成这个样子, 那假如我在这里我希望它表示的是我们路径怎么办?我们就可以用两个反斜杠来表示一个反斜杠, 此时输出的结果就是这个样子,会发现它是不是这里你写了两个反斜杠,但是它输出来是只有一个反斜杠。 第四个要讲的呢,就是我们的引号,反斜杠单引号和反斜杠双引号, 那它一般是用于在字母串中表示单引号或双引号。 假如我们现在要输出的句子,它是别人说的话 he said, 那 我们别人说的话是不是一般放在引号当中?假如直接这样写的话, he said, hello, 会发现什么?它两个引号包括内容是不是像这样子包起来,没有把我们中间的 hello 包起来, 那此时你输出这个 s, 它就会抛出一长。我们如果想要让首尾的引号做一对,就可以在中间插入反斜杠, 那此时它就知道我们这两个才是一对。 再来运行得到结果是不是就输出了这个引号。我们反斜杠加引号才是在字母串中表示引号,双引号也是同理。 反斜杠加上双引号, 这里叫 s e, 我 们来输出一下会发现同样也是得到了这样的结果,只是我们这里是反斜杠双引号,那这里就也是反斜杠双引号。除了像这种写法之外, 我们还有一种写法,既然它外面是单引号,那我就在里面写双引号,它同样也是可以认出的。或者说我在外面写双引号,在里面呢写单引号, 现在来输出一下这个 s 三和 s 四,看一下 会发现它都是可以认出来的。在我们 python 当中,除了像这种,我们手动给它将两个反斜杠转成一个反斜杠,我们还可以使用 r 取消转移。 和我们 f 的 格式一样,它是 r 后面加上你的两个引号,中间放上复制串内容,这叫做原声复制串, 它通常是用于取消转译的作用,就比如现在写文件夹的路径,或者说正则表达式的时候, 我不需要对每个反斜杠进行转译,就可以使用原声字母串取消转译。 那比如这里来看一下我们刚刚写的文件路径, 原本斜杠加上字母会表示转译,但是我加上一个 r 之后, 它里面每个斜杠就代表它原本的意思,就是一个反斜杠此时来运行得到结果就是这个样子。看一下我们刚刚这个换行, 假如在它前面加上一个 r 之后,这个换行符同样也会取消转移, 此时运行得到结果,它就会把这个杠 n 给你原原本本地输出来。