Python电子教案5-1-函数和代码复用.ppt
上传人:可爱****乐多 上传时间:2024-09-10 格式:PPT 页数:58 大小:1.7MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

Python电子教案5-1-函数和代码复用.ppt

Python电子教案5-1-函数和代码复用.ppt

预览

免费试读已结束,剩余 48 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

函数的基本使用函数是一段具有特定功能的、可重用的语句组,用函数名来表示并通过函数名完成功能调用。函数也可以看作一段具有名字的子程序,可以在需要的地方调用执行,不需要在每个执行地方重复编写这些语句。每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应的结果。函数能够完成特定功能,与黑盒类似,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。严格说,函数是一种功能抽象。有些函数是用户自己编写的,称为自定义函数;Python安装包也自带了一些函数和方法,包括Python内置的函数(如abs()、eval())、Python标准库中的函数(如math库中的sqrt())等。使用函数主要有两个目的:降低编程难度和代码重用。函数是一种功能抽象,利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分成更小的问题,当问题细化为足够简单时,就可以分而治之函数可以在一个程序中多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码重用降低了代码行数和代码维护难度。Python定义一个函数使用def保留字,语法形式如下:def<函数名>(<参数列表>):<函数体>return<返回值列表>函数名可以是任何有效的Python标识符;参数列表是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。函数定义中参数列表里面的参数是形式参数,简称为“形参”。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句,在函数体结束位置将控制权返回给调用者。函数调用和执行的一般形式是:<函数名>(<参数列表>)此时,参数列表中给出要传进入函数内部的参数,这类参数称为实际参数,简称为“实参”。编写程序为Mike和Lily输出生日歌。最简单的实现方法是重复使用print()语句,对Mike的生日歌输出如下:其中,第1、2、4行代码相同,假如需要将birthday改为newyear,则每处都要修改。为了避免这种情况,可以用函数printHappy()进行封装。除了Mike,如果再对Lily输出生日歌,除第3行有微小不同外与上述代码一致,这会带来重复代码。如果再有Eric,Adam呢?为了能够复用语句,采用函数方式完成功能,代码如下该程序输出效果如下:微实例5.1代码中第3行定义了一个函数happyB(),括号中name是形参,用来指代要输入到函数的实际变量,并参与完成函数内部功能。第8和10行两次调用happyB()函数,输入的"Mike"和"Lily"是实参,替换name,用于函数执行。程序调用一个函数需要执行以下四个步骤:(1)调用程序在调用处暂停执行;(2)在调用时将实参复制给函数的形参;(3)执行函数体语句;(4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行。对微实例5.1的生日歌程序跟踪分析。第1到7行是函数定义,函数只有在被调用时才执行,因此,前7行代码不直接执行。程序最先执行的语句是第8行的happyB("Mike")。当Python执行到这行时,由于调用了happyB()函数,当前执行暂停,程序用实参"Mike"替换happyB(name)中的形参name,形参被赋值为实参的值,类似执行了如下语句:name="Mike"然后,使用实参代替形参执行函数体内容。当函数执行完毕后,重新回到第8行,继续执行余下语句。函数第8行的执行过程如图5.1所示,这里函数happyB()的变量name被自动替换为"Mike"。当程序执行happyB()函数体时,第一条执行语句是happy()函数,这也是一个函数调用。因此,Python暂停执行happyB()函数,将控制传递给被调用的函数happy()。happy()函数体包含了一个简单的print语句,该语句执行后函数体结束,程序重新返回调用happy()函数的位置。图5.2给出了happy()函数调用和返回的执行过程。函数的调用过程程序执行完happyB()函数体后,返回调用该函数的原始位置,继续执行,如图5.3所示。lambda用于定义一种特殊的函数——匿名函数,又称lambda函数匿名函数并非没有名字,而是将函数名作为函数结果返回<函数名>=lambda<参数列表>:<表达式>lambda函数与正常函数一样,等价于下面形式:def<函数名>(<参数列表>):return<表达式>简单说,lambda函数用于定义简单的、能够在一行内表示的函数,返回一个函数类型,实