00:01
好,接下来我们继续啊来研究函数,我们继续来研究谁呢?还是研究我们这个参数啊,来新创建一个文件,我们来接着来专门创建一个文件,来说一下函数的参数,那刚才我们说的两个练习对吧,我们把这两个练习呢写一下,那我们这两个练习呢,第一个是。哎,定义一个函数用来求三个数的乘积对吧?定义函数用来根据不同用户名显示不同的欢迎信息,非常简单啊,我们先来定义函数,第一个我们来干嘛呢?来求我们这个任意哎三个数的一个乘积,哎,乘积我在这儿直接来一个DeFine,我们来一个叫做一个mul,呃,一个marty啊marty我们乘法啊marty然后然后这来一个什么参数,既然是三个数的乘积,我这是不是需要三个形态啊,所以是A逗号B逗号C,然后在这里边我们直接简单简单点写了,我直接写一个A乘以B乘以C,那这个是不是就是求我们这三个数的乘积啊哎,三个乘积,然后下边呢,再来一个我们来干嘛呢?哎,叫做什么呢?诶,根据我们这个不同的这个用户名,显示我们这个不同的一个欢迎信息啊,先人信息直接还是定义一个啊,我们来一个we l,呃,应该是we CU me啊,Welcome啊welcome,那在这里边我们传一个什么呢。
01:20
传一个username作为参数啊,这都是行参,然后在这我们来打印一下,诶,Print一个print一个什么呢?哎,欢迎username啊,逗号username,这来一个什么呀?哎,光临其实你会发现这里我实际上是不是就传了这个三个形态呀,哎,我等于是在这函数内部掉了什么呀?哎,Print函数啊,Print函数好,两个函数定义完了,我们在这直接来执行一下,先来一个Mar啊,我们直接来一个ULUL,我们来一个这个一逗号二逗号三算一乘以二乘以三的一个积,这应该是一个六,我们一直行,哎,这还DEF。
02:00
缩进写错了这儿,这儿多了一个什么呀,空格啊,一定要注意啊,一定要注意,那这儿肯定有有问题同学缩进一下啊,一保存执行是不是六啊,那就是六啊,然后再往下看,再来一个我们这个welcome welcome来一什么呢?来一个孙悟空,孙悟空,我们这一执行是不是欢迎孙悟空光临啊哎,就这么两个函数,非常的简单啊,非常的简单,好,那接下来往下说啊,往下说那在这里呢,我们先定一个函数啊,我们先定义一个函数,简单点就是一个就是一个DEMO啊,我们直接定一个这个FN啊FN里边三个参数,A逗号B逗号A逗号B逗号一个C啊三个参数,然后呢,我们来看一下,我们来分别把这三个参数给它输出一下啊,来一个A,等于我们这来一个A,然后这来一个什么呢?来一个这个B,等于我这来一个B,最后我们来一个这个什么呢?来一个C,等于来一个这个C啊,三个值都输出一下,那现在我们来直接掉一下啊,直接调一下FN,我们这来一个一逗号逗。
03:00
号三,那这很明显了,A是一,B是二,C是二三,我们这一直行,诶123是不是都没问题啊,哎,都没问题啊这么三个东西,那接下来我们来说一下我们参数的一个传递方式,哎,我们说一下我们这个食参的一个传递方式,哎,那这样吧,咱们先不说食参,我们先说行参,行参在这我们来定义了三个变量,是不是ABC呀,诶ABC3个变量,那这里边我们来说啊,我们定义行参时,定义我们这个行参时,我们可以什么呢?哎,我们可以为我们这个行参来指定什么呢?指定默认值啊指定默认值哎如诶什么意思,看这了,现在我直接是不是三个值ABC啊好,看着我直接来一个C等于20 C等于20,那这个什么意思?这个表示的意思就是我给C指定了一个默认值,默认值的默认值是20,那这20什么作用啊?咱们来看一下,我在这里边直接调一下这个函数FN12。
04:00
三我们来看一下,还是传了三个值123,那这个时候注意我我要看了这C等于20有没有用啊,有没有用,我这一执行123是不是没问题啊,哎没问题,也就说C等于20是不是没有用啊,哎没有用,那这里边我们来说一下,指定了默认值以后,默认值后,诶以后如果用户传递了我们这个参数,诶则什么呢?诶传递了参数诶则我们这个默认值没有任何作用啊,没有任何作用,而什么呢?如果用户没有传递,诶则什么呢?诶则我们这个默认值诶就会什么呀?哎就会生效啊,就会生效,所以在这儿注意,我现在传了第三个参数了,所以C就有值了,但是有一些情况下,如果我不传啊,我直接传一个一二,我直接传一个一二,我们在这一执行走一个是不是变成一二,还有20了,哎,还有20,也就是说这个时候默认值有没有生效哎。
05:00
默认值是没是生效了对吧?默认值生效了,所以注意这默认值什么作用,就是说你指定了,你传了三个,那它就有效,就就就就你传什么就等于什么对吧?如果你没传,没给C传值,那干嘛呀,默认值就生效啊,默认就生效,你写了几那就是几啊所以注意在这儿可以指定默认值,你每个都可以指定是吧?你可以指定诶B等于十,然后A等于五,随便写对吧,随便写这样一保存,A就是一,B就是二,C就是20,但是如果这个时候你干嘛呢?你一个都不纯,你直接传FN加一括号,是不是一个参数都没传呀,这时候你再去执行A等于五,B等于十,C等于20,默认值就生效了啊,所以这就是一个默认值,好理解,应该也好理解对吧?好,那再往下说,这个是我们说的一个它,然后接着往下说我们参数的传递方式,我们食参的一个传递方式,食参的传递方式有两种,一个叫做一个位置,一个参数,还有一个叫做关键字参数,关键字参数。
06:00
那我们先来说位置参数,位置参数顾名思义什么意思呀,位置参数就是什么呢?哎,位置参数,哎就是将我们这个对应什么呢?诶将我们这个对应。哎,位置的一个食参,哎赋值给什么呢?哎,对应位置的形态。哎,对应位置的行参什么意思呀?哎,第一个十参,哎负值,负值给我们第一个行参,哎,第二个实参,哎赋值给我们这个第二个行参,然后是不是以此类推啊?哎,以此类推,这叫做一个位置参数,所以在这儿我去调一个FN的数一二。三那非常简单,我这个一是不是赋值给A呀,哎,A个二赋值给B,三赋值给C,叫做一个位置参数对吧?哎,一一对应啊,一对应这是位置参数,那位置参数呢,是我们使用最多的啊,一一对应的使用最多的,但是位置参数会有一个小的缺陷,因为现在我们这个参数还比较简单,但是你如果参数是有某个意义的,哎,比如说A代表什么样东西,B代表什么东西,C代表什么东西,如果是有某个意义的,你在调用函数的时候,你在传参数的时候,你是不是必须要明确呀?哎,你要明确这个是谁,这个是谁,这个是谁,你要明确这个意义,所以就导致你去用这种位置参数时候,你就必须要记住什么呀,形态的位置,第一个形态是什么,第二个形态是什么,第三个形态是什么?对吧,你必须要记住它的位置啊,那还有什么方式呢?还有一个就是我们关键字参数啊,关键字参数干嘛呢?诶关键字参数。
07:42
哎,可以什么呀?哎,可以不按照我们这什么呢?不按照我们这个行参什么呢?诶定义的这个顺序去传递,而什么呢?而直接根据什么呢?根据我们这个参数名去传递我们这个参数,还是我来复制一下这东西一看就明白啊,我直接复制CTRLC,这来一个FN1,我这来什么呢?B等于一,然后呢,这来一个A等AC等于二,这来什么呢?来一个A等于三,那这就很明显了,那现在我这参数就不按顺序来了,那现在我打再打印应该什么呀?A的值应该是三,B的值应该是一,C的值应该是二,这我一执行走一个是不是A是三,B是一,C是二啊哎,这个就是我们交的一个关键字参数啊关键字参数,那关键字参数的好处是什么呀?哎,你不需要记忆我们这个参数的一个顺序,你只需要记住名字是不是就OK了,这个我们用没用过呀,哎,我们之前。
08:42
诶是不是用过一个print print,我们这来写一个hello,然后后边我可以写一个end跟一个空串,那这样它是不是就不换行了,那这里end就是一个关键字参数啊end这里就是一个关键字的一个参数,好处就是什么呀,不用再去记忆位置了啊,不用再去记忆位置了,那这个时候其实你也会发现哈,是什么参数。
09:04
哎,Hello,是一个位置参数,而摁的是一个什么?哎,关键字参数,那所以这里要注意我们的位置参数和我们这个关键字参数可以什么呀?哎,可以混合使用啊,可以混合使用什么意思呀,看着了,我这来一什么呢?诶来一个FN,我们这来一个一,然后这来什么呢?诶B等于,诶C等于20啊C等于20,那这一是不是就是未置参数啊,C等于20是不是就关键的参数啊,那这个一会赋值给谁呢?一会赋值给A,而20会赋值给C,咱们换一个30,因为我C的默认值就20啊,我这一执行,诶一是A是一,然后C是30,然后B是十啊,B是十,那注意了,那你说我这两个参数能不能掉一个,我把C等于30写前边,而一写到后边,这样行不行呢?我们来看效果啊,我这一直行干嘛了,是不是报错了,哎,报错了啊,这里边说什么叫做position,叫做一个。
10:02
叫做位置参数follows keywords argument什么意思?这位置参数是不是跟到了这个关键字参数的后边了,所以注意啊,我们这一块来说一下,混合使用我们这个关键字和我们这个位置参数是我们必须干嘛呀?哎,我们必须将我们这个位置参数写到什么呀?写到前面啊,写到前边哎,你可以混合用,但是你不能把关键字写前面,位置写后边,你也不能混着写,就是前边是位置,后边是关键字啊,前边是位置,后边关键字,那假如说我这来一个一,然后又来A等于30呢,那这样什么效果呢?哎,我们来看一下一执行干嘛了,是不是也报错了啊,也报错了,因为我们这是不是给了A2个值啊,所以注意啊,你这指定了关键位置参数了,你这就不要再指定什么关键字了啊,这个位置这个应该已经给A了,你这就不要再写A了啊,换一个诶换一个B这是没问题的,或者换一个C保存这是没问题的,懂这意思吧,诶这是我们说的船餐。
11:02
两种方式,一个是我们位置参数,还有一个是我们这个关键字参数啊,传递时态的两种方式,我们还是来听一下。
我来说两句