好,同学们,那么这一小节我们要讲解的知识点是自定义异常, 那我们要学习这个知识点啊,第一步我们应该了解他的作用,第二步我们想一个需求,站在这个需求的基础之上呢,咱们书写代码,做一个体验案例就可以了。那首先呢,我们去讲解一下自定义异常的作用是什么? 那老师说一下啊,自定义异常的作用就是用来我们将不满足程序逻辑的情况进行一个反馈,当然反馈给谁呢?返回的就是用户。 简单来讲,自定义异常的作用就是用来报错,当然报的错误不是语法错误,而是不 符合我们程序逻辑要求的错误。就比如说举一个简单的例子,在现在这个年代,网站安全性要求都比较高, 那我们会经常看到注册用户的时候,老让我们去输入长度大于三位的、大于六位的,大于十六位的这样的密码。那接下来我们讲一下, 比如说我们说简单一点啊,我们的网站密码要求是不能少于三位,如果我们输入四位数,让不让我们注册?按让。但是比如说老师输入一个两位数的密码,这个时候我们的程序应该干什么? 哎,是不是应该提示用户,那我们一般简称之为报错,对不对?那接下来老师问咱们再讲解自定义异常 这个知识点之前是用什么做的?密码长度不足报的错误, 哎,是不是就书写一个 pro 说密码长度不足是不是就可以了,对不对?那接下来同学们啊,注意,那同学们想一下, 我们如果输入两位,显然是不满足这个长度为三位的这个要求,这是不是就是我们用户输入的不满足我们程序逻辑的要求?所以这个时候我们是不是之前都用配音的去报错提示就行了? 当然那么我们除了用 prant 提示以外,还能自定义一个异常类,然后干什么呢?抛出异常类对象以确报错提示用户,那么所以总 总结一下,也就是说自定义异常的作用就是,哎,将不满足程序逻辑要求的 代码,我们干什么?补货异常,是不是去抛出这个异常类对象是不是就可以了?那么这就是我们所谓的自定义异常的作用。 那么现在啊,老师要把这一段讲解作用这个知识点的视频先暂停一下,咱们下一小节再去体验自定义异常代码的书写啊,那么老师暂停视频。
粉丝7.8万获赞28.9万


大家好,我是橙子老师,咱们本节课呢,要通过烹饪的方法的简单练习, 学习一下函数的概念或者是方法的概念,还有数字和字符串的区别,咱们还要通过一个简单的案例计算两位数的加减法,乘除法等等。好,还有注视, 咱们先来看第一个啊,了解一下方法啊或者函数的概念。来, 咱们上节课呢,学了一个方法,是什么方法呢?不润的方 prant, 哎,后边有个括号,这个不润他啊,他是打印的意思,他的后面呢跟了一个括号,这就是 的方法。呃,方法都长这样啊,就是一个名称后面跟一个括号,这就是方法。 那方法是用来干什么的呢?呃,他其实是实现了一定的功能,比如说烹饪的方法,他实现的功能就是将这里面的内容打印到控制台, 其实呢,还有好多好多的方法。呃,以后呢,咱们会陆续的学,本节课呢,咱们就是针对不认的方法进行简单的练习。 好,咱们上节课呢,打印了一个什么呢? hellowor 的是吧,咱们再打印一下一个引号啊,一对引号里边有 hellowor 的 h elo w 啊, ld。 好,咱们运行 等一下。哎,大家可以看到这里边啊,他就有哈喽玩的了。哎,有的同学可能会想,老师为什么要加引号,不加引号行不行? 好,咱们试一下。哎,大家会发现这里他有一个提示啊,有一个弹窗。呃,这个意思呢,就是说语法错误啊,在这有语法错误。好,加了 引号之后呢,他就是字符串类型啊,字符串数据类型啊,以后咱们会详细的讲一下。呃,大家现在先这样记啊,就是带引号的,无论单引号、双引号中间的内容,他就是字符串类 啊,咱们还有一个数据类型,叫什么呢?叫做数字类型,比如说 咱们往这里放个一啊,打印一下,保存一下,哎,他就会打印出一个一啊,这样就是数字类型啊,加了引号,加了引号,他就是字符串类型。 哎,大家可以看到,他们俩虽然都打印出了一,但是一个是字符串类型,一个是数字类型。好,咱们再区分一下,比如说一加一 下边的这个不带引号的,也是一加一,试一下 好字符串的这个一加一呢,他打印出来的就是一加一, 而这个不带引号的啊,数字的一加一,他打印出来的是结果啊,一加一的结果, 咱们总结一下,就是说带引号的,或者是说字符串类型,咱们在这里写什么,他就会打印出什么啊,原封不动了就会打印出来,那数字类型的呢?他会 运算完了之后,把结果打印到控制台啊,这是字符串类型和数字类型在烹饪的方法里啊,它的一个区别。好,接下来咱们还可以计算其他的数,二和三, 或者三和二都可以啊,这是加法、减法、乘法啊,乘法呢,他是这个星号 厨房还有整 整除,他是什么呢?他是两个斜杠,还有 取膜,还有什么呢?还有密运算啊,也就是次方两个长号啊,咱们可以把这个 两个称号放在这里,大家更好的记一下,来,咱们预算一下。好,大家可以看到这个二加三等于五,然后二减三等于一, 二乘三等于六,二的三次方啊,这个是次方命运算二的三次方等于八,然后二除三,他是有了无限循环,是吧?这么多小数,零点零,零点六,六六六。好, 那这个双除号他是取整的意思啊,取整的意思也就是取正常运算情况下的整数部分啊。正常运算情况下整数部分。 好,那这个百分号呢?就是取余数啊,取余数,你看二除以三 啊,二除三,呃,他是不是除不开啊?取余数啊,余数是二。好,这就是咱们的这个,呃,运算符啊,这些加减乘除啊,取魔取整,他们呢是运算符。 这么多行代码啊,这么多行代码,呃,看起来不太方便,有没有办法写一些笔记 好,当然有办法写一些笔记,在咱们编程里呢,叫做注视啊,叫做注视。来,我先写个注视,比如说三个单引号中间 咱们可以写多行注册好,咱们这个呢就叫做两位数,两位 数,两位数,哎,运算两位数,运算也就是两个数,是吧?两个数,两个数,运算好,这就是一个注释。 注视呢,他就相当于咱们读书时候的笔记啊,他不是正文内容,所以说在咱们编程里他不会参与代码的执行啊,只是给咱们看的。呃,一般这个注视呢, 就是为了方便阅读啊,方便阅读能够明白每一行代码或者是每一段代码的意思啊,不太容易理解的代, 咱们就可以使用注视,这是多行注视啊,多行注视呢,可以用三个单引号,也可以用三个双引号来,那咱们给下面这几行代码加个注视, 让咱们能够更好的明白每一行的意思。好,来,单行注视啊,就是警号,注意,在咱们 idl e 里,要想打印出警号啊,打出警号需要切换到英文输入法下, shift 加 三,啊三,上面他有个井,就打印出井号了。好,咱们这里写一下。什么呢?叫做打印打印字符串。好,下边这个写加法运算, 加法运算。好,咱们复制一下。减法运算, 乘法运算、蜜运算, 楚马吟山 取整运算,也就是取余数运算。 好,咱们试一下,大家可以看 到他是不参与执行的啊,不参与执行的他后面没有井号之类的,是吧?其实呢,这个井号呢,不仅可以放在代码的右侧啊,不仅可以放在代码右侧,也可以放在代码的上侧,他就是 单号注视啊,单号注视从警号靠右的部分,他就不参与执行了。好,咱们看一下,这就是本节课的内容,咱们可以总结一下。这个方法呢啊,方法或函数的概念 就理解为一个名后面跟着括号这样的形式啊,长成这样的就是方法。那数 字和字符串的区别,呃,数字呢,在不论的方法里,呃,他可以运算,是吧?几加几,几乘几,几除几都可以运算出来。那这个字符串呢,就是 什么样的字符串放进不论的方法里,就打印出什么啊,这个字符串呢?呃,他是在引号里边的啊, 无论说单引号还是双引号,在引号里边。好,还有这个计算两位数啊,咱们学习了算数运算符加减乘除啊,然后取魔取整,还有命运算。好,还有这个注释, 咱们也学了单行注视啊,用警号多行注视呢,用三个单引号或者三个双引号就可以。好,咱们本节课就到这里。

下面我们介绍魔画四 py installer 酷的使用。 首先对 py installer 库做个基本介绍,其实我们都可能有一种这样的需求,就是将我们编写的扩展名为点儿 py 的拍森原代码转换成无需原代码的可持性文件。 这话可能说的比较绕口,简单说呢,我们希望用可执行文件的方式来执行一段程序,而不是直接用原代码。 这是为什么呢?因为在 windows 平台、 linda 平台、麦克操作系统上, 可能有的时候他并没有安装拍森的 idl e 或者拍森的解释器。如果没有解释器,我们的程序如 会解释和执行呢?那我们需要将原程序首先编意或者打包成一个直接可以执行的程序,那这就是打包需要的作用。在 passion 中,通过一个第三方库,我们叫 py installer, 他可以实现将点 py 扩展名的任何拍森的原代码转换成 windows linus 迈克莱斯下面的可执行文件 对于 windows 平台来讲,简单说,我们可以用 py installer 将拍三元代码变成点 ese 的可执行文件,这样我们直接就可以运行程序,而不需要再去安装拍三的解释器,也不需要去对另外一台计算机做相关的环境 限制了。 pia installer 呢,是一个第三方库。什么是第三方库呢? 之前我们介绍过,标准库指的是在安装拍森的解释器时,解释器自带的一些非常有用的库。 那么第三方库呢,就是指在解释器安装过程中并不预先安装的库。枇杷 installer 就是这样的第三方库,它需要额外安装才能使用。安装第三方库,拍森提供了一个非常好用的工具叫 peep, 我们一起来看一下如何安装。因为 pys dollar 是需要安装运行的第三轮库, 我们不能在 id l e 环境下去安装它。我们需要用 windows 平台下的 come on the meaning 行,或者 leanx 平台或麦克平台下的相应命令行 行来去执行 peper 指令,通过指令的方式去安装第三方库。简单说呢,我们打开 mindos 环境下的 come on 的命令行,在命令行下执行命令 peep install。 后边呢,加上我们希望安装的库的名称, 这里是 py installer。 那我们可以看到程序开始运行 peep 指令。在安装第三方库的时候会连接互联网,从互联网上自动下载安装包,并且安装执行。安装之后会提示 successfully installed, 告诉你这个库是否安装成功。如果你看到这样的提示,那么皮白因斯到了库就安装好了。 下面介绍一下 py star 库的使用说明。 py installer 过安装之后呢,它会安装生成一个文件,也是一个命令,叫 py installer。 通过这样的命令将一个原文件打包生成可知性文件。 我们以本周编写过的实力七段数码馆这样的元代码为例。还记得这样的文件名吗?它叫 seven digits jaw, 我们用 way to 这个版本, 那么找到他的原代码,在原代码锁在目录下,通过 windows 的命令行。记住,一定是要使用命令行,不要使用 id l e 环境 下的交互变成环境。因为 py installer 是命令行的执行程序,不是拍森下面的执行指令。所以在 come on 的命令行下,我们使用 py installer 杠大写的 f, 然后加上我们希望转换的 passin 的文件的文件名称, 直行阶段代码。之后,我们打开目录,我们会看到目录中生成了额外的三个目录,一个叫 py catch, 还有叫 build 和 dist, 其中的 build 和 py catch, 同学们可以将他安全的删除掉。而在 dis 的目录中,你将会看到一个与原文件同名的 esc 文件,这个文件就是打包之后生成的文件。 我们可以鼠标双击这个文件去执行我们需要完成的程序功能。下一步我们看一下 py installer 库的常用参数。我们知道 py installer 库安装了一个程序叫 py installer, 而 py installer 这个程序呢,有一些常用参数, 最常用参数是杠 h, 我们如果在命令行中输入 py installer 杠 h, 那么它会显示这个工具所能完成的功能。我们俗生帮助,这个帮助会告诉你你该怎么用这个工具或者怎么用这个程序。 我们可以使用 py installer 加上两个杠,我们叫杠杠 clean, 这样的参数可以清理在打包过程中生成的临时文件。 比如打包过程中,我们生成了 beaute 目录,生成了 py cash 目录,那么它都可以通过 py solder 可令参数来将它们删除掉。默认情况下呢, py installer 通过杠地参数或者你不加任何参数的时候,它能够将可执行的文件以一组文件的形式生存在 des 的目录中。 也就说呢,我们打包之后会打包成一个文件夹,文件夹中的所有文件都是需要的, 那么这是一种方式,但是这里呢,宋老师推荐大家尽量不要使用默认参数, 我们一般都希望生成的可执行文件是一个独立的可运行的程序,建议大家使用参数杠大小 杠 f 参数,它能够在第四的文件夹中只生成一个独立的文件, 这个独立的文件可以完整的实现点 py 文件原代码的相同功能。 pysl 还有一个很有用的参数叫杠 i, 后面需要加一个点 icu 扩展名的文件名。 简单说呢,我们生成了一个可执行文件,我们想对可执行文件的这个图标做一定的修改,那就可以使用杠 i 参数在打包的程序中使用你指定的某一个图标文件。下面我们举一个实力, 我们可以使用 py installer 对一个原代码文件关联一个图标,并且进行打包。这里边需要一个图标文件 叫克服点 icu。 其实以点 icu 为扩展名的图标文件有很多个,我们可以在网络上利用百度去找到一个图标文件,并且下载保存,改成你所希望要的任何的图标文件的名称, 然后利用 py installer 杠 i 这里用 curve 点 ico 将这个图标与 seven digisstro v to 点 pyi 这样的文件进行关联,并且增加杠 f 参数。那么在命令行下执行这段命令, 就能够产生一个包含我们预定的图标的一个可执行文件,实现了对原代码的打包操作。 pi in style cool 是不是很简单? 这边还要强调一点,只有在打包过程的计算机中需要安装批发 installer 打包之后的程序,比如 seventy straw v to 点 aic 这样的程序,如果你发给你的朋友,或者放在其他的计算机上,他是可以直接执行,不需要安装拍摄环境,也不需要安装 pice dollar。

在拍摄中,按的和 o 是我们非常熟悉的两个运算符,平时我们都是拿他们来做判断,其实他们也是可以取值的, 如果一个卧表达式所有的取值都为真,那么 ps 就会选择第一个值,而按的表达是会选择第二个值,那么下面这行代码输出的结果是多少呢?有没有朋友们知道答案?

好朋友们,昨天我把这个拍粉里面的这个呃,另外一个语法就是控制语句学习了一下,呃,做了这个相应的笔记。那今天我们打铁趁热把它实践一下, 拍成语法里面的这个控制语句呢。其实任何一个变成语言的这个控制语句呢,都是这么三种,一个是顺序语句,一个是分支语句,还有一个是循环语句。所有的程序代码大,不管有多复杂啊,都是这次 这三种控制语句哎组成的。那我们先看一看这个迅速语句, 顺序一句很好理解啊,他就是一个呃从上往下顺序执行的一个代码块,这个就要顺序一句了, 比如说我们三行代码,两行代码啊,他就是正常的一个,先执行完第一句,再执行第二句啊,这样子的一个顺序。这样子的这个顺序语句我们也见了很多了,平时这个 呃写的代码呀,简简单单的都叫,都叫迅速语句。比如说我们新建一个,新建一个文件,嗯,这边选拍摄。 然后呢,我们这个保存一下控制语句啊, ctrl, 比如说我们有一个定了一个内容变量去破补上山药,这是第一句,然后我们把它打印出来,把这个内容变量 打印出来,这是第二句,保存一下,我们预警一下,他就打出来一个图托普万三三幺,图托普三三幺,或者是 好,那这个顺序语句就是一句一句往下执行。那么第二个控制语句是什么呢?第二个控制语句叫分支语句。 分支语句什么意思?就是满足条件 哎,添加判断,满足条件就直行相应的代码块。嗯,就是比如说这里啊,我有一个变量,然后如果这 一个变量的值整数的变量是大于零的,我就执行这一块。如果他不是大于零的,这个条件不满足,他就再继续判断下一个条件,他是不是等于一,这个条件满足,他就执行这一块。如果上面这两个条件都不满足,那就执行 l 四这一块,那他的语法结构呢? 就是 e f l e f 本来是 l, 是 e f, 那它的简写成 l e f 省略了一些,然后最后是 l s。 注意,都是要打个冒号的啊,注意,都是要打个冒号,然后是这个具体的代码块,那我们也来实践一下它这个语法, 我们在这里再定一个,定一个变量,比如说是这个,哎,等于一 衣服条件,用括号扣起来小写的衣服,哎,大于零 冒号,你看他执行什么,对吧?我说跟我把 f 复制为 i 加一,给我加个一,然后再跟我打印出来, 那他这样子会不会执行呢?这个衣服啊,你会发现 他执行了,因为我 i 是等于一,是大于零的,然后一加个一,再把它打出来,就打成了一个二, 对吧?就发生了一个二啊。那如果说 我 l e 夫 l e 夫,他这样的一句啊, l e 夫 i, 如果是等于一的呢? 如果说是等于等于负一的吧, 我们把它改成复议看看啊,这只型 print, 哎,要打出来,对啊, 我现在改成负一,他还会去打印这个吗?他就不会去执行这个了,我们执行一下,他打出来就是负一,他说 他是执行的是这一块,就这个意思,如果这条件都不满足呢?比如说是负二,条件都不满足啊,既不大于零,也不等于负一, 让你再把自己打出来执行一下,你会发现他打出来就是负二了,这个时候打出来就是负二了,那他执行的就是这一块,对不对?哦?如果,如果我们要是这个, 嗯,这个三个分字语句啊,这个语句快呢?一定要注意,是这个说尽要一致,他才能是执行这个语句快,说句说尽不一致,比如说这里小一个空格,然后这样子的话 进不了的,这报错了啊,报错了,缺少一个缩进匹配的,所以缩进要要一致, 那就是这个控制语句里面的分支语句。那么还有最后一种控制语句是什么呢? 是这个循环语句,循环语句就是当条件满足的时候去执行这个循环体, 循环体内的代码块,比如说典型的这个外号循环,他有好几种 循环啊,还有负循环,我们先看看外号循环,外号就是单单条件,这跟那个衣服的条件是一样的,括号扣起来,当这个条件满足的时候,冒号啊,表示我们是一个代码,快要开始了,就执行这个代码块,这个代码块我们称之为循环体,循环体 l 十,他还有一个 l 十,这个是跟我们其他的加瓦斯下午语法那一未必语法都不一样的,就是循环题, 如果条件不满足的时候,他还能够附带再执行一局代码,一个代码块还能在附带再执行一个代码块,就是条件不满足,不满足就执行这个就等于是义务条件不满足, a 二十,你干嘛 啊?注意这里面 l e, 服了啊,就是直接就是 l 四不满足,那我们这个也来看一看这个效果吧。 好,就是这个衣服的分支,我们继续写循环的,循环的就是 while 这里还是用这个 i 啊,把这个 i 的值,我们把这个 i 的值负为五,然后呢,我们写循环 y 啊, 爱大于零,如果外,如果爱现在是大于零的 啊,你们服务吧, 那我们就欢迎一下。如果外 现在是小于零的,负五是小于零的,那还要进入到这个循环体,这个循环体干嘛呢?哎,打印一下,哎,把哎给我打印一下 对不对?然后我们把这些打印,你就先注册掉,不让他影响我们, 那就把整段代码都注册掉,注册整段代码是用三个引号,三个单引号对不对?好,我们就是用到了这个变量爱啊, 跟我打印爱,同时把爱复制为爱 加一,这是循环题,如果我爱已经是不满足于这个小鱼鳞的条件了,跟我打一个 循环,循环条件不满足。好, 我们来看看效果之前的效果。哎,你会发现他打出了负负四,负三,负二,负一,然后再打了一个循环条件不满足,他就循环了这么多次。是不是你一开始爱是等于负五的, 爱是等于负五的爱,负五小不小于零,小于零好,满足执行,然后加了个一,就变成这个 复试了,复试小不小于零还是小于零,满足,只需直到加一加一,加一加对,加到了一个等于零,对不对?等于零了之后不满足,满足不满足就是这个外耳循环。 然后呢,我们还有一个很经典的循环,就是那个破循环, 就是我们经常用 for i 指定他循环多少次,小于等于多少,循环多少次。那我们这里在 path 里面这个 for 循环呢,是用的这个,也是也是用 i 这种啊, for i, 然后呢它是叫 in, 一个 ring rig, 这个函数是产生一个序列 啊,这个里面呢,可以指定一个范围区间啊,他是前面 b 区前面 b 区间,后面开区间,也可以指定一个数字表示,就是啊,一个这样的一个 最大值。哎,我们看一看,他这个指定一个数字的时候,他就不是开区间了,就是产生一个训练,从零开始到到五到四啊,这个是个开局间,我们看一下这个效果,负爱, 嗯,好,依然我们把这个代码收拾掉, four 括号 i in range, 对吧?比如说五,我们前面这个前面这个 i 也不要了。好, 我们看看他会循环多少次, 打印出来,打印这个爱好,注意这个 for 呢,他就没有这个。哎, four 的话呢,就没有 l 是语句了啊,没有 l 是语句了,我们看看他这里报的什么错, 无效的语法,我们这个否语句呢,是不能在这个外面不能有括号这个意思。嗯,他这不是一个条件, 而这里不是一个条件,应该是这样的一个语法, 就是这个 for 语句啊,我们这个 for 循环除了这个 for i 数字之外呢,我们也可以对一个列表的长度啊,来指定一个序列长度来进行 for 循环,这也是在便利每一个成员, 便利这个列表每一个成员。还有一种更直观的写法,就是直接用 fo i 这么硬,用硬这个保留字来进行这个便利。那我们这里体验来实践一下,这个硬, 就是我们用负循环来便利啊,便利我们的这个列表成员, 如果这个成员在这个里面,那么我们判断的是,如果这个成员里面含了这么欧,我们就继续执行循环,如果他没含欧,我们就退出循环。这里 continue 和 break 这个 语句是他的,也是循环起点两个保留字,一个就是用来继续执行循环体,下一次循环体继续执行循环体内部的这个后面的代码他不执行了,但是他并不退出循环,这是个肯定流,他会进入到下一次循环。而 break 呢,是直接退出循环,这个循环 对体内的其他的代码,后面的代码不仅不是行,而且是直接退出循环,这是这个 啊, break 和 continue, 我们来看看效果,哎,这个时候你会发现他的这个循环他就执行了一次两次,然后退出循环, 因为你第一个有 o, 第二个有 o, 他执行了两次,对不对?在继续执行的时候,这个 k 粉没有 o, 没有 o 的时候,他就退出循环了,就这个意思。所以呢,这是这个 for 的 for 语句啊的另外一种表示方式。 那从这里我们就看到了这个循环体稍微复杂一点啊,有 y 循环,有 for i 的数字循环,也有或硬啊,用这种硬的方式来写的这个循环, 对吧?那以上我们就把这个控制语句的这个三个写法,一个是顺序语句,分支语句,还有这个循环语句都说完了, 循环语句的只有这个 y, s 有这个 l 是分支,这个副语句呢,看样子都是没有 l 是分支的,而且副语句的这个条件不能扩起来,不能像 y 一样扩起来啊,这是这个循环语句的特点啊。

大家好,今天我们来学习一下 python 中的 map 函数和 filter 函数。我们先简单的讲一下这两个函数的用法。 map 函数,它的第一个参数是 funk, 给它制定一个函数, 第二个参数是一个可叠加对象,比如说 list, 它的作用就是将 list 中的每一个元素都当做参数传递给 funk, 然后返回由 funk 的返回值组成的可叠加对象。第二个函数 builder, 它的第一个参数也是一个 funk, 第二个参数也是一个可迭代对象。 list, 它是将 list 中每一个元素都传给 funk, 然后 funk 里面它会有一些条件判断,如果它满足 就返回,不满足就不返回。整个函数返回的也是由满足 funk 函数的条件的元素组成的。表决带对象。好,我们来开始今天的案例,筛选出年龄大于等于三十的人,然后将其工资翻倍。 第一步,我们需要用到刚才学习的 filter 函数。 filter 函数的第一个参数是一个函数,我们可以先自定义一个 def, 用于筛选年龄大于三十的人,我们就来一个 filter age, 它的参数是一个人的信息 person, 它的作用是筛选年龄大于三十的人,我们就直接 return 大于等于三十。 现在我们将函数 m g 给 builder, builder age, 注意不要加括号。第二个参数,我们将 people info 传进去一个可叠的对象, 它的返回值我们用 filter people 来接收一下, 现在我们打印一下试试 print filter people, 发现他是一个可怜的对象, 我们可以用 list 直接转换一下它, 这样的话,年龄大于三十的人我们就筛选出来了。第二步,我们需要将筛选过的人物信息把他们的工资翻倍。这时候我们可以用 map 函数 map, 那第一个需要指定的函数也是一个 funk。 我们先定义一下 deaf double gallery 参数,给一个 person 兼取 person 的工资, person salary 将他的工资翻个倍乘等于二。最后我们 retean 一下 person, 这时候我们回到 map 函数,先将 double salary 传进去,注意也不要加括号。第二个,将我们筛选过的人物列表传进去。 builder people 和 filter 函数一样,它也是返回一个可叠的对象,我们可以用 list 直接转换一下。 最后我们得到我们需要的结果,打印一下, 我们发现人物列表的工资都成了一个二。本期的案例就到这里,谢谢大家。

大家好,我是编程杨老师。在上一节课中,我们一起学习了拍摄中的远祖类型,也就是他婆类型。在这节课中呢,我们将一起学习列表类, 列表和后面学习到的字典类型是拍层中使用最广泛也是最平凡的两种结构。在学习列表的过程中,我们可以对比上一节课中学过的他泡类型,因为这两种类型在很多地方是非常相似的。好了,让我们一起开始吧。首先让我们来看一下今天的课程大纲,我们将从以 下三方面进行讲课,第一个会对利斯特的定义进行讲解,第二是介绍利斯的基本的操作,包括一些增删改善的办法,还有就是利斯特相关的方法。我们首先打开 cmd, cmd 我们 输入拍摄,进入拍摄的编辑环境。利斯特的定义呢,可以用一个方过号,比如说我们这边定义好一个 a 的变量,他的类型是利斯特,他 一个方括号开始,比如我们自己随便挑一些数字,五二十八四个元素,那这个时候呢,我们用胎谱来看, a 是什么类型呢?那 a 就是一个历史类型,我们也可以创建一个空的啊,用创建一个空的历史的,那用关键词历史的,然后小括号回车,那 a 呢,同样是一个 类似的,只不过呢,这时候呢, a 是一个空的,就是空的列表,也就说里面没有一个元素,我们还是恢复到定义的第一个列, 我们看到 a 里面有五二十八四个元素。在这里呢,我们可以跟上一节课学到的他跑进行一个对比,比如说我们定一个他跑,他是用小块表示的,对吧?同样的用五二十 八,那我们踏入一下 b, b 是一个塌炮,那塌炮是不可以被更改的里面的元素,比如说我这个我把,比如说我们把 b 的 第一个元素,也就是零下边是零的元素,把重新给改了,比如说我们把五改成十,可不可以呢?不可以是吧?因为这里是他是不支持重新定义的,重新复制的,但是呢, a 是可以的。 a 我们把第一个元素改成十 位呢啊,是可以的,我们来看,那第一个元素是不是变成十呢?这就是 top 和 miss 的一个非常重要区别,就是 too 被定义好之后的元素是不可以再被更改的,而列表呢,是可以随时被更改。我们讲一下这个例子的基本操作。首先还是回到切片,那他我们 top 里面讲了切片的概念,那同样的 a, 我们定,我们是想切从零 到一,从零到一的切片从这里面切出来,那是只有十,对吧?因为一是不会被取到的啊,他是一个就是零下标,零肯定会取到,零到一的过程零肯定会取到,然后呢,零一一的话在他这个元素不会取到,所以只会取到十啊,就是切片他也 有负下标的概念,比如说我们有一个负一,那负一肯定是八,对吧?就是八,他是负一,负二,负三负四,他是下标,我们怎么反问一个列表的元素呢?比如说我们想反问第零第一个元素啊,就是零下标,他是十,对吧?就是这样子反问啊,通过下,通过这个下标的方式,方括号加下标的方式来反问,然后怎么样给一个列表追加呢?我们现在是 只有四个元素,十二、十八,那我们想在这个里面追加一个呢?就是啊,判的啊,判的就是追加的意思,那我们追加一个七,我们来再看一下 a 的 是什么样子,那最后加了一个七,在他的末尾加了一个七,就是属于用喷子的方法增加元素,那也可以用一个喷子是追加,其实在 尾部追加。如果我们想,哎,在这个十和二之间车压插入一个元素怎么办呢?那么就用另外一个方法,因色因素的第一个参数是表示位置,就你在哪个位置插入,比如说我们想在这个地方插入,也就是零一啊,但这是一, 我们在一的位置插入一个一百,我们再看一下 a 是什么呢?那这个地方是不是变成了一百,在十和二之间插入了一,这就是因斯尔特。好,我们来怎么样讲删除里面的一些元素,比如说我们把这个铃木,通过铃木这个函数啊,把里面的这个十给删掉,删入掉十, 入这个十啊,再看 a, 好,这里有两,因为有两个十,所以他只删掉了一个十,第一个遇到的十,那我们再删除一次呢?那 a 里面应该是没有 六十了,对吧?只剩下是一百,二和八和七,这就是属于删除一个指定的值。还有一个破谱的方法,那 a 的破谱是什么呢?就是弹出炮出来吗?弹出来他是从尾部弹出的啊,这个时候应该是把七给弹出来了,可能 看一下他是把七弹出来了,这个时候 a 呢,迫不是把这个值弹出并且删除,那我们看 a 是不是少了个七,只剩下十二八了?那如果我们想把这个 a 的元素全部给删除的,那我们用颗粒就是清除。我们再看 a, 他是一个变成一个空列表了,对吧?空的利斯特这个更改元素我们刚之前已经讲了,就是重新复制的例子,把第四个元素给复制给八十八,然后我们最后讲一下利斯特相关的方法,其实呢,这些方法 可以在那里面去找到这些方法,我这里只是举几个例子,其实还有例子上面还有很多其他的方法,比如说我们是想看这个例子类型上面有哪些方法呢?我们可以通过这个拍摄里面的 top 命令 app, a 是一个列表类型的,我们还要补他一下,我们可以看到,哎,他是会把这个 a 对应的类型啊, a 对应类型是历史的,是原组,对吧?所以他把这个,把这个克拉斯就是类类。但我们是后面这个讲的内容啊,现在不用管,就是把这个他里面相关的方法全部给打打印出来。我们可以 查看按空格键,可以看他所有的方法,比如说颗粒啊、 copy 啊, cantex 啊,英带克斯、英斯尔特拉布、泡泡啊,都跟他讲了很多很多方法啊,可以通 这种方法去查他有哪些方法。那我这里来举个例子,我们刚才的这个杯我们还是想重新定一下,因为他刚才元素已经被全部删除了吗?我们可以重新 找了几个。 ok, 我们这里定义了五个,一个有具有五个元素的列表类型 a, 那我们通过这个瑞瑞瑞斯就是曲反,曲反是什么意思呢?我们看到之前的一五十八变成了从左到右,变成从右到右左,是吧?是反过来逆转,这也是非常用的比较频繁的一个命令,还可以排序。我们做 说他一下,那他什么呢?从大到小还好虚把他的银色的和瑞木冯都讲过了。那我们想知道这个瑞数字的方法的这个相关的文档怎么办呢?我们也同样用靠谱方法,然后用 a 的数的方法, 我们可以看他相关的文档,你看他是一个内置的函数啊,比如另一方审索的,然后讲他的一些参数,比如说他可以为位置啊什么的,很多很多方法啊。 好了,我们今天的课程讲到这里,我是编程杨老师,如果你觉得这个课程对你有用的话,请帮忙点赞、转发、评论,如果有任何问题的话,也可以在评论或私信的方式来告诉我,会看到之后第一时间回复。那我们下节课再见。拜拜。


大家好,我是讲师李宗,这节课我们继续介绍函数这一章,那么本节课呢,我们介绍自定义函数。 好,那么首先我们看一下我们怎么样去定义函数,实际上定义函数的时候呢,他的语法规则呢,只要是包含底范,注意,我们说了包含底范,这样我们就去定义了一个函数, 然后呢,那么底饭的后边就是你要给函数要起个名字,函数的名字和变量的名字是一样的,这个是我们随便去起的。然后呢,这个里面呢,这会有参数,注意,这是一个可选项, 这个参数呢,他可以有,也可以没有啊,一会我们说这是什么意思,然后呢,这个里边就是函数体,就是你要做什么工作,你写到这个里边就可以了。呃,注意,那么这个函数体在这呢是有空格的,就是说你这个函数体 他不要和底饭写到同一列上面,你要向右缩进一点点,留两个空格出来。然后最后呢,那可以有返回值,所以这个返回值呢,他也是一个可选项,就是他可以有,也可以没有。呃,这个说起来当然很抽象,我们看例子, 我们看呢,现在呢,我根据半径来计算圆的面积,我分别定义了四个函数,哎,这是一个看一下,哎,这是函出的名字,一个叫艾若一,一个叫艾若二,一个叫艾若三,还有一个叫艾若四, 然后你看有的里边他有有参数,有的里边没参数,对不对?哎,也就说有的里边是有值的,有的里边是没有值的,这就叫什么呀?参数, 哎,这就有参数,那么有参的呢?哎,当然我们就叫有参的,对吧?无参的呢?哎,当然就是无参的,那所以说这个参数他是一个可选项,可以有,也可以没有,这根据需要去 选择就可以了,然后呢,你看呢,这个里边有的有瑞特,瑞特就是一个返回值,就是说最后你去调那个函数,你要得到一个结果,对吧?这个结果就是瑞特,他返回是谁,他的结果就是谁,那么我们看这个瑞特 这个 return, 那么他呢?我们说呢,叫做返回值,他叫做返回的值,这个返回值呢,也是两种情况,对吧?他可能有返回值,也可能没有返回值,好,哎,这是一个参数的情况,这是一个返回值的情况,然后我们看可以排列组合,对吧?哎,没有参数没有返回值,这是第一种。 然后有参数没有返回值,这是第二种。没有参数有返回值,这是第三种。然后呢,有参数有返回值,这是第四种。也就说我们去写函数的时候,你可以随意的去写,然后当然我们看啊,无论哪一种,我们都能够得到正确的结果,看到吗?哎,第一个 一,我们计算的是半径为十的圆的面积,是输出是三百一十四,对吧?第二个我们也也是在计算 半径为十的圆的面积,哎,同样是三百一十四,半径为十的圆的面积,使用艾若三去计算,还是得到三百一十四使用,哎,这个艾若四去计算半径为十的圆的面积,得到的还是三百一十四,这是一二三四四个阶,我们看得到了同样的 这样的一个值,这样吧,哎,那我们怎么样去计算呢?哎,下面就是我们需要去做的啊,好,我们去实战一下, 我们看怎么样给他计算出来,那么这个呢,是我们提前写好了,我们给他的注视掉啊,我们都不要了,当然这个注视的话我们看啊,我们可以使用,呃, ctrl, 然后呢加上斜杠啊,这样我们就都实现了 三行都市。有同学说,老师你为什么不用块都市啊?哎,块都市就是 shift 加奥特加,哎,就是整块啊, 相当于我们在最开始这呢输入了三个啊单引号,然后结束的位置输入三个单引号就叫块猪屎,哎,这两种猪屎都可以,但是块猪屎有一个什么问题呢?就是块猪屎一般的没有办法进行欠套,就是我写了一段代码, 然后呢我给他注视掉了,然后呢我又写一段代码,我想把当前的这个被注视掉的代码和新写的代码一块被注视掉,这个就比较麻烦了还。所以说呢,我们一般呢采用单行注视,能够呃继续的进行注视啊。 好,我们回到这个题上面,我们说呢,我现在的诉求,我写一下,我们现在的诉求是什么呢?诉求就是计算半径是十的圆的 面积,那实际上呢,我们说我不写函数,那怎么去做啊?哎,你不写函数,那你比如说我用 ir 去写,那就是 ir 等于三点一四,然后三点一四去乘,呃,乘十啊,乘十再去乘十,哎,这就是软的面,你不用哎二一,哎。然后我们看一下有没有结果呢? 不是的哎,阿姨,我们看这个结果呢是三百一十四啊下边,哎,很好的得到我们这个结果了,那这是什么呀?哎,这就是我们的诉求,那我们现在使用函数了啊,使用函数,使用函数,使用函数,我们现在最简单的无残数,然后无无返回之。 呃,如果没有参数没有返回值,那我们去怎么去写?我们看底范,注意,然后你写一个名字比较 i r 一,然后呢,那这个里边注意这儿以 冒号啊,然后你就可以用啊,直接打印的方式就可以了。普润,然后呢,就是三点一四乘以十,再乘以十,你这不就是计算了半径是十六元的面积吗?然后我们看,那他怎么用啊?他使用的方式和我们去调用其他的函数 方式是一样的,那你直接去写一个 l 一,这就可以了呀,注意,不管他有没有参数啊,这我们要给他加一个括号,好把这个前面这个猪吃掉啊。好,然后我们按一下 f, 我看一下。 好,现在的结果是三百一十四,哎,非常好,我们看得到的结果。好,那我们现在就不要他了,我们现在呢稍微改一下诉求,那我们说呢?我们,呃使用函数啊,构造函数,二二二,这二二什么呢?他是有参数, 然后无返回之,有人说你既然是能用无参数的来实现,你为什么还要使用有参数啊?哎,参数是我和函数进行交换, 这样的一个中介,或者说呢,能够让我和参数进行对话。什么意思啊?我们看一下啊,你看,我们现在定义一个 l 二,然后呢?这有一个 r, 哎,这有一个 r, 那么我们现在做成, please, 注意,三点一四乘以 r, 然后再去乘以二,然后呢,你看,我们现在就用 r 二,然后出一个十,好,我们看现在的结果啊, 现在的结果按下 f 五,那我们看能够计算出来他的圆的面积是三百一十四,没有问题,对不对?注意,我们现在我计算二十,或者说我们计算半径是二十的圆的面积是多少,我改,这就可以了,也就是说 你这不是二十吗?这二十会传递给 r, 那么他计算出来的就是半径是二十的,圆的面积是幺二五六,哎,这个是非常方便的,那如果说你没有参数,那你改起来,你每次都要到函数里面去改,如果说他的呃用到的地方特别多, 那么你改起来就非常麻烦了,所以说这个参数能够帮助我们更好的完成什么呀?完成这个半径的调用。好,那我们继续让他计算式啊,好,那我们说呢,现在我构造的都是什么?大家看都没有返回值,对不对?也就说你没有返回值,那我们看一下有返回值的情况, 我们现在呢构造一个函数二三,然后呢?注意,我们先让他无参数,无啊,没有参数,然后呢有 返回值,那我们看这时候我们怎么做吧。底饭,然后二三,注意没有参数,没有参数,直接去写这个 prayer, 注意,现在我不 pray 了,我们直接是瑞特,瑞特是谁呀?我们直接瑞特三点一四去乘以 十,再去乘以十,哎,这就是位置,这叫他的返回值,注意,我们这写一下吧,这叫返回值。返回值是干什么呀?你再一次调用这个爱尔三的时候, 注意 i 二三的时候,他的值就是他的返回值。对,你看你这不就掉二二三了吗?那么二二三是谁啊?哎,就是这个值,哎,瑞特后边这个值,瑞特后边这是谁啊?三点一四乘十乘十。哎,那当然,我们看一下,那当然他的结果就是看一下他的结果是三百一十四,对不对?哎,三百一十四哪来的?哎,这来,这就是 返回值,返回值,注意,能够注意什么呀?就是能够作为函数他的一个替代, 哎,或者说就是函数的运行结果,哎,这是我们说的啊,二二三。好,那么这次我们再构造一个更复杂一点的,这次这个构造怎么说?构造函数,哎呀, l 四,这个二十四是什么呢?注意有参数,然后呢也有返回值,有返回值,那这个时候我们看比分。 l, 我们让他是四啊,那么这个时候我们看呢?这个时候你注意突然就是谁啊?三点一四乘以三点一四乘 啊,三点一一四乘以二,然后再去乘以二,好,这是他的返回值啊,那我们这时候我们再去看普瑞特,然后,哎,然后这个 里边我们看,我们写一个十,好,那么然后这个时候我们看他的结果是多少呢?他的,呃呃,错了,这应该是艾尔四啊,艾尔四,你看他们托艾尔是没有被定义,对不对?所以我们这应该是艾尔四,是在这里的,好,按一下 f 五, 然后执行,我们看他的结果呢?是多少呢?他的结果是三百一十四,看到了吧?哎,这就是他的运行结果,那就说我们再回顾一下啊,我们 包含了四种情况,没有参数,没有返回值,那我们看直接调用函数,他就会执行函数里面的内容,对不对?他没有返回值的时候,永远是直接执行函数的内容,有返回值是什么呀?他就被当成一个值来用,我们总结一下啊, 所以这个地方我们来一个总结,来一个小的总结,那么也就是说总结,说什么呢?如果 没有返回值,那我们是吧,直接调用函数,然后呢?直行函数,那这个时候我们再看一个情况,如果有返回值,那是干什么呀? 那么函数是什么呀?他的运行结果作为一个值来使用,对吧?值来使用,这是我们说的返回值啊, 那么第一个我们说呢,在这我们写上这是返回值的总结,返回值总结,那我们看参数是什么意思啊?我们这看一下参数, 那么参数的总结我们可以,嗯,回顾一下,如果有参数啊,我们先看有参数的情况,或者先看无参数,一样无参数,那什么呀?无参数,那么你就说函数的 功能是固定的,也就说你要是计算,比如说啊,比如计算啊,半径,半径为,半径为十的面积啊,那只能只能完成该运算,这样吧,哎,完成该运算, 那么另外呢,如果是有参数呢?有参数呢?我们就这个时候就说了函数,函数的功能更加什么呀?更加,呃,我们管他叫什么呢? 更加灵活吧,更加灵活,灵活体现在什么地方?比如说他能够是他能够啊,他能够计算不同半径的圆的面积,这样吧,哎,他他就更灵活了。好,这就是我们本节课的全部内容,当然我们去看课本的话,他会给我们总结一大堆,一大堆, 为什么?呃,减食量,也就是几种,对吧?无餐的,然后呢?无返回值了,然后呢?第二种是无餐的,有返回值的, 然后第三种呢是有餐的,有返回纸的,然后第四种呢是有餐的无返回纸的。给我们会用不同的方式去实现,但是我们吃在一个函数,或者说在一个功能里边,我们分别实现了这样的四种功能, 这个呢希望大家呢能够把这个函数反复的去写,然后呢就能够发现他到底有什么样的不同了啊。 好,这就是我们本节课的全部的内容,下面给大家布置一个练习啊,这个练习呢和我们这个题目差不多,我们根据呃正方形的编查,我们计算他的面积, 当然我们可以写四个不同的不同的函数,对吧?那么第一个函数呢,我们说没有参数也没有返回值,第二个没有参数有返回值。第三个呢有参数, 然后呢没有返回值。第四个,呃,有返,呃,有参数也有返回值,哎,当然你就是排列组合嘛,总之你你这一个题目肯定是可以进行呃,四十个不同方式的排列组合,所以我们要求大家写上四种, 哎,要写上四种函数,你把它都写一遍,那么当然这个自定义函数哎,基本就没有问题了啊。 好,这就是我们本节课的全部的内容,我们这节课就到这里,我们下节课再见。

前面我们说了或循环能循环多少次,是取决于硬,后面这个类型所包含的值得个数有多少个,他就循环多少次。现在我写一个 fo x in, 然后我写一个列表, 一二三四五,一共五个纸,所以应该是循环五次。那是不是我们后面的子弹呢?就一定要用这个 x 呢?其实是不一定的,如果我们要用破循环来做取值操作,那我们肯定是要在循环体内来使用这个变量的。可是 如果我不想用这个取出来的纸,我就单纯想将一段代码循环执行一定的次数,那你不用这个变量也是可以的。我就在这里随便打印一点内容 来运行看看,结果就是这行代码打赢了五次。有同学可能就会问,这后面都没用这个变量 x, 那这个 x 能不能不写呢?这个变量名是固定必须写的,这是标准语法,当然这个变量名你随便写都可以,你用 abcd、 xyz 都行, 但是大多数情况下大家都喜欢用 i, 我这里就不改了,还是用 x。 但是我们的循环体代码不一定就非得用这个变量。现在我们知道了,复循环除了可以用来循环曲子做便利之外,还可以将一段代码循环执行固定的次数。 但是现在有一个问题,如果我要用破循环,循环五次就还好,可以像刚刚一样写一个有五个字的列表或者字典,再或者有五个字母的这幅串,是不是就可以循环五次了? 也不算太麻烦,但是我现在有一个需求,你用破循环给我循环打印五十遍。张大仙,难道你要写一个有五十个字的内表出来吗?这时候拍神就给我们提供了一个功能,叫润景加括号,他可以用来控制 fo 循环的循环次数。前面我们学到普润题加括号是调用一个功能, 音铺的加括号也是调用一个功能,还有印的加括号 id 加括号,这些都是调用一个功能。现在我们又学了润 加括号也表示掉用一个功能,这个功能就可以帮我们造出任意多个字出来,你想造五十个字,一百个字,一万个字都可以,就不用自己再傻乎乎的写包含五十个字的列表了。现在来看这个润集怎么用。这个润集在拍摄二和拍摄三中还不一样,我们先打开拍摄二的交付式环境来看一下, 直接写润检,然后括号里会写个十,这就相当于从零开始到十结束,生成中间的整数,顾头不顾尾。顾头不顾尾的意思就是零要,但是十不要,也就是生成零到九,这十个整数撬回车,然后就产生了一个列表, 列表里包含十个字,从零开始到九结束。当然你想从一开始也是可以的,你就在润集的括号里写一逗号九,顾头不顾尾嘛,也就会产生一到八这八个整数。然后我们还可以指定不长,也就是每步走多远。润集括号一,逗号九, 九就是从零开始到八结束,然后再写一个逗号一,也就是每步走一。比如我从一开始的步场为一,也就是下个值,在当前值上加步场一,得到的也就是当前值为一,下个值就为二,这和刚刚是一样的,因为不指定步场,默认的步场就是一,现在我把步场改成二, 这样的话开始指为一,不长为二,第二个指就是一,加上二,第二个指就是三,然后第三个指就是三,加上二,结果就是五,然后是七,接着是九。但是由于顾头不顾尾,是不包含九的,到八就结束了,所以九拿不到,结果就是一三五七。