00:00
好了,同学们大家好,那么我们将在本小节当中继续为大家讲解函数的相关内容,我们本小节的主要内容是什么呢?函数的返回值,好了,我们在这里边新建一个文本文件,用来记录一下我们相关的信息啊好,函数的返回值。函数的返回值,那什么是函数的返回值呢?要了解这个概念之前呢,我们先来做一个小小的实验好不好?来在这里边我们新建一个文件给大家讲一下一个问题来,我们的麦下线扣的四下划线零八啊。四下划线零八好创建,创建文件,文件创建完了之后呢?我们干什么事呢?我们做一个小小的函数,定义一个函数,计算两个数的和,非常简单啊,然后定义。一个计算两个数值的和的函数,那在里边DF定义函数,我们求和啊,Get sum求和。
01:03
然后在这里边写两个行参。只需要进来两个数就可以了嘛,是不是,所以NUMBER1,然后逗号NUMBER2,好两个形态有了之后呢,我们在这里边进行运算,Number re result等于NUMBER1加上NUMBER2,是不是这样就算出结果了,然后呢,我们像以前的操作都是在这里边直接打印出来我们最终的预算结果result就可以了,那么这个函数是不是定义完了,好,定义完了之后我们来调用函数看了。要用函数来,我们在里面get萨同时传入两个数字,比如12和23吧,那这个时候呢,我们运行函数会得到一个运行结果是35,那么大家想想我们在控制台中这个35是怎么来的呢?是不是程序调用函数的时候,函数预算的结果复制给了result,然后我们在函数内打印result,获得的结果对不对,好,完全没有问题,但是现在我想做一件事情,干什么事呢?将我们刚刚得到的结果,将求和的结果的结果进行一个什么呢?乘以十的操作。
02:14
乘以十的操作,这个时候大家想想该怎么办呢?问题出现了,你会发现这个数值好像是算出来了,但是呢,它是直接打印到控制台里边了,我我们也没有存到变量里边,也没有存到数据库里边,也没存到任何地方,好像我们又拿不出来,对不对?所以这里边就涉到一个问题,我们运算的结果在函数里边能用,我能不能给它拿出来呢?那这个时候你会发现拿不出来的很多,说那我能不能用变量来接收一下,比如说我们这块用一个result啊,比如说result,我们在这里起一个变量吧,行不行,比如说number。我们来接收一下函数,看能不能得到结果,答案是不能啊,答案是不能。来AUM来右键运行一下,你会发现number是没有值的,很多说number是啥呀,看到没有,Number是now,也就是说你在函数里运算的变量正常情况下是拿不出来的,你即使变量接受了函数的调用也拿不出来,那这个时候我们就没有办法进行后续的什么呀,函数运算结果的操作,但是在现实生活中,我们真正开发的时候,函数运算的结果往往是要什么呀,拿出来进行其他操作了,比如说我把这个结果拿出来,是不是存到数据库里边,把这个结果拿出来再进行其他的运算,那怎么办呢?好像这种情况下我们就得想办法使得函数里边的值能够拿到函数外边来,这个时候用到的就是函数的返回值,所以什么是函数的返回值啊,给大家简单介绍一下函数的返回值,就是简单的说啊,函数的返回值。
03:55
就是函数执行完毕之后能得到一个结果,执行完毕之后可以什么呀?得到一个可得可以得到一个结果,这个结果呢,该结果可以。
04:11
叫可以被接收或者使用,这叫函数的返回值,问题就在于我们怎么样让这个值哎返回来或者要出来,这个时候呢,我们在函数里边把刚刚这句话给它注释掉,哪句话注释掉呢?就是print这句话注释掉了,我们不要打印了,打印没有意义啊,打印只能打印到控制台里,并不能拿到,对不对,所以你会发现,哎呀,Number还是个那那怎么样函数里边那个result送到函数之外,能够被变量接收呢?在这里边加上一个新的语句啊,返回指语句啊,返回值语句什么语句呢?叫return return,然后把你想返回的数据放到return之后就可以了,Result,那么这个时候我们在这里边用get sum调用这个函数,函数运算之后得到了结果啊,放到了result里边,然后通过返回值语句return将刚刚运算的结果result运就是输送到函数,调用到外部来,那么这个时候它就可以被变量接收了,也就是说我们最终将这个result送到了函数之外,并且把它交给了变量number来存储,这次打印的时候,Number就能够接收到你对应的值了,看见了吗?
05:23
那你想接受打印几次就打印几次啊。那既然我们现在已经接收到了值,那放到变量里边了,那剩下操作是不是就按照你的意愿,你想怎么操作就怎么操作就可以了,对不对?比如说你想乘以十,那就是什么呀,我们就可以打印print框,Number乘以十,Number乘以十。来右键就变成三百五了,看见了没有,这就是函数的返回值,简单的给大家介绍一下,到底返回值是个什么意义啊?实际上我们正常的情况下会将函数进行两大类的划分啊,我们的函数是有两类的,函数划分为两大类啊,函数划分为两大类,哪两大类呢?一大类叫做执行过程函数,一大类叫做具有反馈值的函数。
06:12
所谓的执行过程函数,就是函数执行之后没有任何结果,可以叫可以在函数之外接收到,接收到啊,而我们的具有返回值的函数就是指函数值行之后可以返回一个结果到函数之外,被其他变量接收啊,被接收呃,或者使用。接收或者使用。那么他们两个或者是的话,他们两个的最大的一个区别,其实就是关于我们刚刚学到的这个return到底有没有,所以其实可以简单的这样理解,怎么理解呢,叫做。
07:02
具有返回的函数就是具有return语句的函数啊,然后执行过程函数就是没有return语句的函数。没有return语句的函数,而且大家也知道啊,就单单对于return这个词而言,英文单词return的作用是啥?或者它的意义是啥?是不是就是返回啊,英文意思就是返回的意思,就是返回的意思。哎,我们可以举一个小小的例子啊,什么叫做执行过程函数呢?进行过程函数就比相当于我是一个外卖员,我是一个送外卖的啊送外卖的送外卖的,然后呢,我把什么呢?我现在把。把我们的餐啊,就是把我们的饭啊,把饭或者把外卖吧,把外卖送给客户。客户,然后就完了,就结束了,就结束了啊结束了,那对于我而言,就是对于我送餐而言,或者我这个送外,对于我送外卖而言,我没有送外卖是一个过程啊送外卖。
08:08
我们是过程,而且送完之后。之后没得到任何什么任何的这个这个这个这个叫做呃,任何东西吧,啊任何东西你看比如说我是肯德基送外卖,那他点了我就直接送,那我只是管什么呀,我只管送的这个过程,其实送的送给客户之后,客户也不会给我什么东西,对不对,但是呢,如果说是我们这样来来理解另外一个函数,具有返回值的函数。那这个时候我是送外卖的,但是我这次送外卖不像肯德基这样的,肯德基这样送外卖大家都知道,他们是专门的送餐员,是不是别人点完了之后,他只管送就可以了,那比如说我像是什么呀,我现在像什么?呃,百度外卖啊,美团啊,是不是或者这样的外卖,那我把外卖送给客户。送给客户,然后呢,结束了的时候,我得到什么呀,是不是得到了钱呢?就是我带着钱回来了,看见没有。
09:06
但得到的钱,哎,那这个时候送外卖是过程,没有过题,没有问题啊,送外卖还是过程。但是送完之后我是不是得到钱了,送完之后得到了什么呀?钱,哎,这就是具有返回值的函数啊,简单的理解一下就是什么呀,你第一个送就是光送这个过程就可以了,但是第二个送的时候呢,什么呀,你不但送了这个过程就行了,而且还从客户里边得到了东西,是不是这就叫做什么呀?具有返回值的函数,是不是你得到了钱你就可以花了呀,是不是?这就是我们的具有返回指导函数和什么呀,执行过的数的一个理解方式啊,也可以理解为什么呀,一个是在线付款,一个是货到付款,那在线付款我送过了,过完了我送到了就可以走了,是不是,那货到付款的话,我是不是送到了之后还得什吧手里拿着钱,当然这样的话对大家来说可能是有点小小的歧义啊,但实际上就是你送个这个过程之后有没得到一个东西,有没得到一个东西。
10:06
那大家现在能够理解关于return的作用了吗?Return的作用就是,哎,你执行的过程之后,你手里边儿确确实实得到的东西,而没有return的函数,其实你送完了就完了,没你啥事了啊。那么这里边也体现了我们return的重要的作用,对不对?有了return你才可以把值送回来,没有return的话就送不回来啊,不,不什么送回来,没有return就可以接收到东西,没有return就是么呀,接触到东西,所以这是两大类函数的划分,以及return在这里边的一个简单的介绍。好了,那return只有这一个作用啊,就是只有返回数值的作用吗?其实不是啊,我们return还有另外一个作用,哎,查看RE2RETURN语句的另外一个作用,另外一个作用是什么作用呢?好。我们在里边第一个函数啊,测试函数就可以了,然后干什么事呢?在这里写上几句话,第一个print,一行星号。
11:04
一行星号,第二个print,一行井号啊。同一上井号。好,就这么简单的一个函数,然后呢,正常情况下我们调用函数,我相信大家都知道结果调用函数,那么调用函数的情况下,是不是输出一行星号一行减号,好没有问题,是不是一行星号一行减都得到了,但是看好了,我在星号和井号之间添加一行一句。添加IR return语句返回什么都可以啊,你甚至光写return也不会报错的,光写return表示什么都不返回也可以的啊好,当我添加了语句之后,我们再一次来运行程序,你再看一下诶。星号还在,井号没了,对不对?这是为什么呢?这是因为return语句除了刚刚为函数返回结果之外,还有另外的一个作用啊,有了两个作用的,那另外一个作用是什么作用呢?
12:01
好,我们来给大家介绍一下return的另外一个作用,另外一个作用什么作用呢?它的另外一个作用叫做终止函数执行,简单的理解就是函数运行过程当中,运行过程中一旦执行了return语句,Return语句那么函数就结束了啊,函数就会结束执行,不会继续往下再接着走了,明白了吗?这就是我们return的语句啊,其实return语句在呃,日常的使用当中是非常常见的,而且我们绝大部分的函数都是return语句,因为你希望得到结果嘛,是不是都是特异句?就拿我们之前学到的函数来看一下,比如说ID函数。它是什么呢?具有返回值的函数。因为大家知道使用ID函数的话,是不会得到一个数值的变量标识,对不对,那K函数。
13:00
它也是一个具有返回值的函数,具有返回值的函数,具有返回值的函数,因为大家也知道用keep之后会得到它的类型字符串,是不是包括我们数据类型转换的什么int,是不是它也是具有返回值的函数啊,返回值的函数,因为你传一个数进去,它会得到另外一个整形的值给你嘛,是不是,所以是具有反回值函数,以此类推,所有数据转换的都是。那好多学生说,那就没有这个执行过程函数吗?有,比如说print。Print它虽然可以打印出数据来,但是这是它的功能,它执行的过程,Print的函数本身运行完了是不可以被变量接收的,所以它是一个执行过程函数啊,执行过程函数很简单的一个道理,你就在这里边写上一个print函数啊,然后比如说我们在这里边测试print print函数,你随便打印东西啊,Print print打印,我们这次打印行打印一个符号行不行?那我们拿变量看好了,我拿变量接收一下,打yes result,我接收一下这个result,接收print,那首先要运行程序之前,你要确定这件事情,我只运行了这个at符号一定会出现,因为print有这个功能嘛,对不对?但是你看好了,我如果用print来打印你刚刚的result,也就说我想用print,看看result接受的是什么,你会发现他接受的只是一个not。
14:27
是一个none啊,是什么意思呢?在P当中none就表示什么都没有啊,什么有就没有数值的意思,所以print只是一个执行过程函数,没有返回值的啊,它没有返回值啊,只有一个long值。那值同时那值表示什么?没有值啊,那表示没有值,就是就没有值啊,表示没有值。所以这时候我们会发现,哦,原来我们学过好多的函数,而且大部分都是什么呀?具有返回值的函数是不是?那只有少部分的是执行过程函数?好了,当然我们前面写的例子在讲return之前写的所有的例子,那全都是什么呀?执行过程函数,因为没有return语句嘛,对不对?好了,大家对于return的理解好了吗?好了,那么return讲完了之后啊,本小节还有一些时间,我们将为大家讲一个新的内容,什么东西呢?叫做函数的文档。
15:24
函数的文档啊,首先在这里边我们新建一个普通文本文件啊,给大家记一下什么叫函数的文档,新建一个文件函数文档。好。OK,确认一下函数文档是什么东西呢?它是帮助我们学习函数的一个文本文件,或叫一个描述文件啊,帮助我们学习函和和使用函数的什么呢?文字描述就是这么个东西,这叫函数文档,我们新看到一个函数,它怎么用呢?正常情况下我给你一个函数,比如说我给你一个什么,呃呃,我给你一个,这个叫做。
16:02
呃,叫什么函数来着,这property吧,你知道是干嘛用的吗?不知道,那这个时候呢,就要用到函数文档来帮我们解决。那我们在学习的时候都有一个东西叫函数手册,大家听过吧,是不是,其实函数手册就是函数文档啊这一种啊,那在这里边我们点开我们的手册啊,就是这个文件点开了之后呢,我们想学某个函数啊,点开我们的标准库啊,点开我们的标准库看一下内接函数吧,比如说我想学找一个大家认识的好不好,我想学一下这个set集合函数,那它怎么用呢?点开它你会发现这是函数,下面是一大堆关于它的描述,就是怎么用是不是?返回来,然后呢,我想学习一下什么呢?这个int函数怎么用,点开int,那下面有int相关的介绍,是不是,这就是它的文档,比如说我想学再找一给大家找一个,我想学这个,找个大家认识的,我想学这个ID函数怎么用,行不行?点开ID,你可以发现ID上面写着什么返回啊,这个这个还有乱码,上面会写着这个ID怎么使用,怎么样的格式,一个描述,对不对,虽然是英文的,你可能看不懂啊,但是你翻译成中文啊,可以看到吗?也就是说学习函数的时候都会有一些文字描述,帮助我们来理解函数的使用,那我们自己想查看什么呀,某个函数文档老查手册不是一回事是不是?所以我下面告诉大家第一件事,如何查看函数文档啊,查看函数的文档。
17:32
我们系统其实自带的啊。我们新建一个文件,第九个文件右键新建一个Python文件。MY。下限扣的,然后四下限零九好,然后在这里边第一件事查看函数的文档,函数的文档查看方式有两种,我们先来看第一种啊叫做什么呢?使用help函数啊,使用helpp help函数。也就说系统已经给我们提供了专门查看函数文档的方法了,其实help,比如说我要查看ID函数怎么用,直接help写个ID就可以了,也就说把函数名放在这里边,PA里边右键运行程序,它会自动获取当前函数的文档信息,并且打印给你,看见没有,他说了啊,ID的使用方式是往里边传一个数据啊,我们这对象数据的意思,然后它的结果是返回一个什么呀,它的ID标识,然后下面会有一些其他的一些说明文字,那这样我们就看到了它的文档,我想看一下别的函数没有问题,比如说我想看一下这个。
18:34
什么东西呢?这个print函数怎么用h help pan块写上print,那么它就会把print的使用方式给你介绍一下,右键打印一遍,你看到没有很多信息吧?首先它告诉你这个函数是内键函数,然后print的,这是print函数的介绍,下面是print函数的格式,看好了是它的使用格式及参数,就比如说啊,Print可以写多个值,诶咱是不是说过print打印多个值用多少分割,是不是写多个值?同时呢,还有一些关键字参数在这里,看好了吗?这是关键字参数,其实这里边很好一点,记不记得end等空字符串,咱设置的其实就是写的我们的print默认的结果,默认的结尾有一个回车嘛,咱用end等于空字串是不是为了覆盖这个?以前给大家讲小星星的时候,SE就是输出两个数据之间的间隔符号,它默认空格,你都可以重新传实参给它覆盖,那下面还有一些更加详细的介绍,那这是函数文档了,所以查看函数文档理论来说是非常简单的,你只要一个help,想开谁就。
19:35
谁呀,Help块?是不是比如说我在想看一个看一个什么东西呢?看一个tap吧,然后右键运行一下也可以查看出来,Help一下全出来,看到没有。当然hi,我们在这里看到了,它是一个类型哈,因为现在学函,说是函数可以到后期你就知道了,实际上tap这个东西,它是一个后面要讲的类,但是也可以查看,比如说你要在查看其他函数,都可以用这种方式来查看函数的文档。
20:01
好,除此之外,这是第一种方式,还有第二种方式啊,第一种方式help是比较推荐使用的,那第二种方式什么方式呢?第二种则是使用函数名点函数名点象限,象限DCT的方式来查看啊,是DC的方式,Doc的方式来经行查看也行,比如说我想查看这个ID的标识,ID的这个文档说明print,它这个自己打印了啊,Help自带打印,但是这个这个不自带打印,所以你得printt啊print ID点下线,下线doc。象限象限来这个也可以查看它的文档,但是它会少一些信息,你看到没有,它没有格式,只告诉你它的返回值是什么东西,并且告诉你它的一些文字文档介绍。打印我们的print函数的时候也是这样,Print print,点下线,下线。Doc下线下线来右键运行一遍,你看是不是也有啊,但是没有格式,所以这种方式我们并不推荐大家使用啊,这种方式才是我们的推荐使用方式。
21:03
好,推荐使用这个啊,推荐使用这个好,然后除此之外,我们现在知道了怎么样查看系统的文档,那我们自己写的函数有文档吗?哎,所以自定义一个函数,好DF啊,我们自定义的函数非常简单,干什么事呢?就写一个求和吧,形象get some啊,Get some,然后呢,在里边写上NUMBER1,逗号NUMBER2,然后呢,在这里边干什么事呢?将两个数求和,等于NUMBER1O1加上NUMBER2,算完了之后我们返回结果return我们的result。Is,很多学生说,那我们自己定义的函数能不能查看呢?也可以查看,只不过没有什么信息啊,查看自定义函数的文档,那在这里边我们第一呃,直接来使用help来查看就可以了,那在这里边干什么事呢?写上get上好括号不要啊,直接写函数名,不许写括号,括号是调用了,右键运行一遍走你你看出来了,告诉你这个函数是在当前文件,这个MY是当前文件的意思,当前文件定义的,然后它的格式是这样的,然后完了没有了,告诉你是自定义函数,然后啥也没有了。
22:11
但是这显然不够学习函,别人来学习你这个函数吧,所以我们下面要为当前函数自定义文档,那函数文档怎么定义呢?看好了,在函数第一句话就是DEF后面写个三引号,成对的,必须在第一句话之后,你不能往下移,必须紧贴着第一句话啊,写出我们的什么呢?写出我们这个。这个叫做三个引号啊,三引号的注释写完之后回车,它会自动给我们添加几个信息,这些信息好像是能看吗?右键运行一遍。看见没有,是不是能看啊,啊,很多说这咋自动出来了,甚至知道我的参数W1和NUMBER2啊,这是因为我们的编辑工具就是排他们帮我们写的啊,实际上这里边他要写什么东西呢?他要写的第一个是第一个参数,就是参数一的意思啊,就是参数一的意思,这个是第二个参数,也就是参数二的意思,那return是什么意思呢?返回值的意思。
23:10
你可以写英文版,写的高大上,也可以写中文版啊,没说非得写英文版啊,你可以写中文版。一个写中版,比如说你写了给中国人用的是不是,那就写中文版也没有问题啊,只不过写英文版也没什么影响,因为大部分人都看得懂啊,参数一啊是NUMBER1是NUMBER1,参数二是NUMBER2。然后返回值是什么东西?OK,那函数文档就写这些就够了吗?不是函数文档,注意由三部分组成啊,函数文档由三部分组成。啊,写不是这个位置啊,函数文档由三部分组成,然后函数文档组成的三部分,函数文档的三个部分,我们学的函数也好,写函数分带来也好,都要从这三部分下手,哪三部分呢,功能。参数返回值。所谓函数的功能,就是这个函数是干嘛的,是是干什么用的,所谓的参数就是它传入的值和类型是什么样的。
24:13
然后反位置就是得到的结果。我们学习函数,只要从知道这三个方向,只要知道这三个什么内容,那么这个函数就可以使用了,那我们在自己写文档的时候也是一个道理啊,所以你要在这里边再加上一个功能是什么?它的功能是什么呢?哎,我们这个和功能是计算两个数值的和对不对,参数一传入一个什么呀,传入一个什么类型,Number类型好AB啊,Number类型我们只知道它可以传整数附减数是不是都可以啊number类型。是不是,那NUMBER2是什么呢?嗯,也是数字类型嘛,Nub number类型类型。啊,类型你可以写的更详细,比如说我写整形复写型是不是,然后返回值是什么东西呢?返回值是一个是不是和啊,两个数的和,嗯。
25:08
两个数值的和啊,类型依然是number类型,因为你number加number是不是还是number,这时候我们再用右键运行就可以看到函数的详细文档,看到没有函数的get sum功能参数访问是不是都有了,有这个那别人学习你的函数来就会更加的方便啊,所以这就是函数文档自定义的方式,看到了吗?首先注意啊,这三个注释也不许往前移动,三个注释如果没有缩进的话,属于语法错误,它必须是。和代码就是我们的函数内容同一等级缩进,而且顶头就是第就是除了第一句外,它是另外的开头写的啊,就是这个格式都是不能不乱,明白吗?好了,那关于函数文档就介绍到这里面,以后大家写函数的时候尽量把函数文档写的更加明确一些好不好?好了,那么感谢大家的收听,本小节内容到此结束,我们下一小节继续来讲解其他相关函数的内容。
我来说两句