Python程序设计项目化教程 课件 项目6-函数应用_第1页
Python程序设计项目化教程 课件 项目6-函数应用_第2页
Python程序设计项目化教程 课件 项目6-函数应用_第3页
Python程序设计项目化教程 课件 项目6-函数应用_第4页
Python程序设计项目化教程 课件 项目6-函数应用_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

——函数应用e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC《项目六》21Contents目录函数的创建与应用函数的高级应用e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFACe7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC1函数的创建与应用1.1函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段,它能够提高应用的模块性和代码的重复利用率。print(“*”)print(“***”)print("*****")如果在一个程序的不同地方需要输出这个图形,每次使用print语言输出的做法显然不可取。1.2函数的定义与调用e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFACPython定义函数使用def关键字,格式如下:def函数名(参数列表):

函数功能体1.2函数的定义与调用e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC定义了函数之后,想要让这些代码能够执行,需要调用函数。通过“函数名()”即可完成调用。#调用刚才定义的函数函数名()1.3函数的参数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC在定义函数的时候,让函数接收的数据就是函数的参数defadd(a,b):c=a+bprint(c)a和b就是函数的参数,调用的时候,可以传入任何两个数。

add(0,99)

1.3函数的参数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC调用函数时,如果没有传递参数,则会使用默认参数。默认参数1.3函数的参数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC有时可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命名。不定长参数1.4函数的返回值e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC函数的返回值是使用return语句来完成的。

defadd(a,b):c=a+breturnc函数add中包含return,意味着这个函数有一个返回值,其返回值就是a和b相加的结果。1.5变量的作用域e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC为了避免变量的名称发生冲突,所以Python引入了命名空间的概念。命名空间指的是名称到对象的映射,类似于字典,键名是变量的名字,值是变量的值。

命名空间是相互独立存在的,而且它们被安排在某个特定的层次,把这些层次结构组合起来就是作用域。1.5变量的作用域e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC所谓局部变量,就是在函数内部定义的变量。局部变量的作用域是函数内部,意味着它只在定义它的函数中有效,一旦函数结束就会消失。局部变量1.5变量的作用域e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC定义在函数外的拥有全局作用域。全局变量可以在整个程序范围内访问。如果出现全局变量和局部变量名字相同的情况,则在函数中访问的是局部变量。全局变量e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC2函数的高级应用2.1

函数赋值给变量e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFACPython运行时把函数赋值给一个变量,这个变量就可以执行原函数,可以像调用原函数一样调用函数。defsum()#定义一个求和函数sum#省略定义函数过程s=sum#将函数名赋值给一个变量sx=s(2,3)#通过变量调用函数2.2

函数作为参数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFACPython支持函数作为另一个函数的参数传递,可以将函数作为参数传入另一个函数进行调用。deffoo(func,a,b):returnfunc(a,b)#函数内部调用作为参数的函数x=foo(add,3,4)#add作为参数传递print(x)2.3

函数返回函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFACPython函数可以返回任何类型的数据。函数可以返回函数。deflayzy_sum(*args):#定义一个求可求个数的数据和的函数defsum():#定义内部函数ax=0forninargs:ax=ax+nreturnaxreturnsum#返回函数2.4

递归函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC一个函数的内部可以调用其他函数。但是,如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。2.4

递归函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC使用递归,实现阶乘n!=1*2*3*...*n的计算。2.4

递归函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC使用递归,实现阶乘n!=1*2*3*...*n的计算。deffact(n):ifn==1:return1returnn*fact(n-1)Fact(5)1205*4*3*2*12.5

匿名函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数。如果要声明匿名函数,则需要使用lambda关键字,匿名函数的声明格式如下所示:lambda参数列表:表达式2.5

匿名函数e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC使用Lambda声明的匿名函数能接收任何数量的参数,但只能返回一个表达式的值。匿名函数不能直接调用print,因为lambda需要一个表达式。sum=lambdaarg1,arg2:arg1+arg2print(“运行结果:",sum(10,20))print("运行结果:",sum(20,20))2.6

装饰器e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC装饰器是在不修改原函数定义结构的基础上拓展函数的功能,它还能随着函数执行时自动执行。def

logger(func):#定义装饰器,名字叫loggerdefwrapper(*args,**kwargs):#定义闭包函数start_time=time.time()#调用原函数的部分s=func(*args,**kwargs)#引用外部函数的局部变量,并传入参数print(‘计算的和是:’,s)#输出求和结果end_time=time.time()print(end_time–start_time)returnwrapper#返回内部函数的引用2.7

迭代器e7d195523061f1c0d3ba7f298e59d031c9c3f97027ed136f882110EF8F17BAD1F2C348D17C7856EF46CB4678CC9E44EE1ABA681E3133328A7B4D22AAF822B2429426B2355AA8CC4431B8568D2CF3B73AE9F4AE98D5A0D6A5566EF967553E96D781C502472DAB692B5E92B1CB5B32F40BF8CF6181A24AB2F2CD3A9A53F0FE7F0D4E247476572CCFAC迭代是访问序列元素的一种方式,迭代器是一个可以记住遍历位置的对象。迭代器对象从序列的第一个元素开始访问,直到所有元素被访问完结束。迭代器有两个基本方法:iter()和next()2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论