首页
学习
活动
专区
工具
TVP
发布

第九讲——函数(1)

第九讲——函数(1)

通过前面八讲的学习以及这么长时间的消化,相信大家都大致了解了Python中的基本语法,能完成一些简单的任务,做一些自动化的事情,比如说写一个简易的计算器,下面我们将学习如何将我们的功能打包。

在Python中,我们将封装后的程序叫做“函数”,从规范来讲,我们要尽量使一个函数仅仅只完成一个功能,这样可以使我们的代码更加的易读,易懂。

函数,大致分为以下几类:

一、无参数无返回值的

二、无参数有返回值的

三、有参数无返回值的

四、有参数有返回值的

本讲我们说前两种,后面两种下一讲再说。

无参数无返回值的:

Pyhton中函数的定义的语法是这样的:

def是声明一个函数的标识符(关键字),后面跟随一个函数的名字,然后加一个括号,一个冒号,下面是一个注释,这个注释是可以不写的,如果写一般是用来介绍我们的函数的功能,下面的main()即完成调用我们的函数。

注:函数体内部如果不知道写什么,就写pass,相当于一个什么也不做的函数。

注意:看清楚我们的缩进,这里函数体是向后缩进了一个tab的位置。

易错点:有的行使用四个空格,有的行使用一个tab,虽然看起来都是那样的距离,但是Python解释器会报如下错误:

即,不一致的tab和空格的缩进,为了防止这个错误,我们最好将所有的tab替换为四个空格,这样不仅仅解决了缩进问题,也解决了不同编辑器的tab的大小的不一致问题!

------------------------------------------------------------

下面请看我们调用函数最简单的一个例子:

可以看到,我使用了main()调用了我们定义的main函数,打印了一个hello world!,那么后面我使用了

print(main.__doc__)

打印了我们函数注释区域的内容,所以说Python是个很神奇的语言,我们为某个函数写使用说明,只需要在定义函数后的注释区写一个实例,一些说明即可完成,不需要专门去写一个文档,而用户想查看使用说明,只需要打印函数的__doc__属性即可。

注意上面例子中,哪里使用了括号,哪里没使用括号!

无参数有返回值的:

上面大致了解了函数怎么去定义,那么什么是返回值呢?

通俗来讲,返回值就是一个函数对调用方的反馈,使调用方知道我们函数进行完毕之后的一个状态!记住,此处是进行完毕,因为我们一旦使用返回值,代表这个函数的结束,返回语句的下面的所有语句将不会执行!

请看下面的例子:

上面的例子中,我们在函数里定义了两个print的语句,其中一个在return的下面,这个return就是我们的返回值的对应的关键字,它会将return 后面的值返回给调用的地方的前方的变量,在上面的例子中,我使用一个变量:The_num 接收了这个 1 然后打印了出来,return后面是什么类型,接收到的数据就是什么类型的,数据的类型不会因此改变!

我们可以看到,return后面的那个print语句的内容并没有输出,被废弃了。

如果上面的理解了,请继续向下看:

上面例子中,我们return了一个 1 ,如果我们返回了一个表达式呢?

上面的例子中我们返回了一个表达式:5*8*7*4,使用The_num这个变量去接收这个返回值,并打印了这个The_num的类型,在结果中看到,类型为int类型,说明:return后面如果跟了一个表达式,编译器会将表达式计算出来一个结果然后返回,而不是返回这个表达式后才计算!

讲了这么多,那么函数到底是用来干什么的?

比如现在你有个程序,假设有很多验证性的语句,从头到位几万行代码,很巧合的是,这些验证性的语句刚好是一模一样的,这个时候,我们就可以将这些语句放在一个函数体内,每当我们需要写这些验证的时候,只需要写一句话,调用我们这个函数,不仅防止某次我们写错,还能简化代码量。

但是函数也并不是没有缺点的,当我们需要调用函数,编辑器需要一个时间去跳转执行,所以如果我们的函数非常多非常冗余,使我们程序一直处于跳转,是会影响一点点性能的,但是现代计算机的处理速度比以前快了太多,所以可以不考虑,只需要了解这个点就行了。

谢谢观看

大家听懂了吗,觉的不错的话,转发下吧^3^

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181207G1KCAU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券