Python电子教案5-1 函数和代码复用ppt课件_第1页
Python电子教案5-1 函数和代码复用ppt课件_第2页
Python电子教案5-1 函数和代码复用ppt课件_第3页
Python电子教案5-1 函数和代码复用ppt课件_第4页
Python电子教案5-1 函数和代码复用ppt课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、函数的根本运用1;.函数是一段具有特定功能的、可重用的语句组,用函数名来表示并经过函数名完胜利能调用。函数也可以看作一段具有名字的子程序,可以在需求的地方调用执行,不需求在每个执行地方反复编写这些语句。每次运用函数可以提供不同的参数作为输入,以实现对不同数据的处置;函数执行后,还可以反响相应的结果。函数可以完成特定功能,与黑盒类似,对函数的运用不需求了解函数内部实现原理,只需了解函数的输入输出方式即可。严峻说,函数是一种功能笼统。函数的定义有些函数是用户本人编写的,称为自定义函数;Python安装包也自带了一些函数和方法,包括Python内置的函数如abs()、eval()、Python规范库

2、中的函数如math库中的sqrt()等。函数的定义运用函数主要有两个目的:降低编程难度和代码重用。函数是一种功能笼统,利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分成更小的问题,当问题细化为足够简单时,就可以分而治之函数可以在一个程序中多个位置运用,也可以用于多个程序,当需求修正代码时,只需求在函数中修正一次,一切调用位置的功能都更新了,这种代码重用降低了代码行数和代码维护难度。函数的定义Python定义一个函数运用def保管字,语法方式如下:def (): return 函数的定义函数名可以是任何有效的Python标识符;参数列表是调用该函数时传送给它的值,可以有

3、零个、一个或多个,当传送多个参数时各参数由逗号分隔,当没有参数时也要保管圆括号。函数定义中参数列表里面的参数是方式参数,简称为“形参。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。假设需求前往值,运用保管字return和前往值列表。函数可以没有return语句,在函数体终了位置将控制权前往给调用者。函数的定义函数调用和执行的普通方式是:()此时,参数列表中给出要传进入函数内部的参数,这类参数称为实际参数,简称为“实参。函数的定义编写程序为Mike和Lily输出生日歌。最简单的实现方法是反复运用print()语句,对Mike的生日歌输出如下:微实例5.1:生日歌其中,第1、2、4行代

4、码一样,假设需求将birthday改为new year,那么每处都要修正。为了防止这种情况,可以用函数printHappy()进展封装。除了Mike,假设再对Lily输出生日歌,除第3行有微小不同外与上述代码一致,这会带来反复代码。假设再有Eric, Adam呢?为了可以复用语句,采用函数方式完胜利能,代码如下微实例5.1:生日歌微实例5.1:生日歌该程序输出效果如下:微实例5.1:生日歌微实例5.1代码中第3行定义了一个函数happyB(),括号中name是形参,用来指代要输入到函数的实际变量,并参与完成函数内部功能。第8和10行两次调用happyB()函数,输入的Mike和Lily是实参,

5、交换name,用于函数执行。微实例5.1:生日歌程序调用一个函数需求执行以下四个步骤:1调用程序在调用途暂停执行;2在调用时将实参复制给函数的形参;3执行函数体语句;4函数调用终了给出前往值,程序回到调用前的暂停处继续执行。函数的调用过程对微实例5.1的生日歌程序跟踪分析。第1到7行是函数定义,函数只需在被调用时才执行,因此,前7行代码不直接执行。程序最先执行的语句是第8行的happyB(Mike)。当Python执行到这行时,由于调用了happyB()函数,当前执行暂停,程序用实参Mike交换happyB(name)中的形参name,形参被赋值为实参的值,类似执行了如下语句:name = M

6、ike函数的调用过程然后,运用实参替代形参执行函数体内容。当函数执行终了后,重新回到第8行,继续执行余下语句。函数第8行的执行过程如图5.1所示,这里函数happyB()的变量name被自动交换为Mike。函数的调用过程当程序执行happyB()函数体时,第一条执行语句是happy()函数,这也是一个函数调用。因此,Python暂停执行happyB()函数,将控制传送给被调用的函数happy()。happy()函数体包含了一个简单的print语句,该语句执行后函数体终了,程序重新前往调用happy()函数的位置。图5.2给出了happy()函数调用和前往的执行过程。函数的调用过程函数的调用过程

7、程序执行完happyB()函数体后,前往调用该函数的原始位置,继续执行,如图5.3所示。函数的调用过程lambda用于定义一种特殊的函数匿名函数,又称lambda函数匿名函数并非没有名字,而是将函数名作为函数结果前往 = lambda : lambda函数与正常函数一样,等价于下面方式:def (): return lambda函数简单说,lambda函数用于定义简单的、可以在一行内表示的函数,前往一个函数类型,实例如下。lambda函数函数的参数传送21;.在定义函数时,假设有些参数存在默许值,即部分参数不一定需求调用程序输入,可以在定义函数时直接为这些参数指定默许值。当函数被调用时,假设没

8、有传入对应的参数值,那么运用函数定义时的默许值替代,例如:可选参数和可变数量参数由于函数调用时需求按顺序输入参数,可选参数必需定义在非可选参数的后面,即dup()函数中带默许值的可选参数times必需定义在str参数后面。在函数定义时,也可以设计可变数量参数,经过参数前添加星号*实现。带有星号的可变参数只能出如今参数列表的最后。调用时,这些参数被当作元组类型传送到函数中,实例如下。可选参数和可变数量参数vfunc()函数定义了可变参数b,调用vfunc()函数时输入的(2, 3, 4, 5)被当作元组传送给b,与a累加后输出。第6.1节将详细引见元组类型,这里请读者将元组了解为一组元素。可选参

9、数和可变数量参数函数调用时,实参默许采用按照位置顺序的方式传送给函数,例如dup(knock,4)中第一个实参默许赋值给形参str,第二个实参赋值给形参times。但当参数很多时,这种调用参数方式可读性较差。假设func()函数有6个参数,它的定义如下,参数分别表示2组三维坐标值。func(x1, y1, z1, x2, y2, z2): return参数的位置和称号传送它的一个实际调用如下:result = func(1, 2, 3, 4, 5, 6,)假设仅看实际调用而不找到函数定义,很难了解这些输入参数的含义。在规模稍大的程序中,函数定义可以在函数库中,也可以与调用相差很远,带来较差的可

10、读性。参数的位置和称号传送为理处置上述问题,Python提供了按照形参称号输入实参的方式,函数调用如下:result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)由于调用函数时指定了参数称号,所以参数之间的顺序可以恣意调整。参数的位置和称号传送return语句用来退出函数并将程序前往到函数被调用的位置继续执行。return语句同时可以将0个、1个或多个函数运算完的结果前往给函数被调用途的变量,例如。变量的前往值函数可以没有return,此时函数并不前往值,如微实例5.1的happy()函数。函数也可以用return前往多个值,多个值以元组类型保管变量的前

11、往值一个程序中的变量包括两类:全局变量和部分变量。全局变量指在函数之外定义的变量,普通没有缩进,在程序执行全过程有效。部分变量指在函数内部运用的变量,仅在函数内部有效,当函数退出时变量将不存在。例子如下。函数对变量的作用函数对变量的作用这个例子阐明,当函数执行完退出后,其内部变量将被释放。假设函数内部运用了全局变量呢?例子如下。函数对变量的作用函数func()内部运用了变量n,并且将变量参数b赋值给变量n,为何n值没有改动?函数func()有本人的内存空间,它将n=b语句了解为生成一个部分变量n,并将参数b赋值给它,此时func()函数没有将n当作全局变量。所以,函数退出后,部分变量n被释放,

12、全局变量n的值没有修正。函数对变量的作用假设希望让func()函数将n当作全局变量,需求在变量n运用前显式声明该变量为全局变量,代码如下。函数对变量的作用假设此时的全局变量不是整数n,而是列表类型ls,会怎样样呢?了解如下代码。函数对变量的作用请读者留意,奇观产生了,全局列表变量在函数func()调用后竟然发生了改动!列表等组合数据类型由于操作多个数据,所以它们在运用中有创建和援用的分别。当列表变量被方括号,无论能否为空赋值时,这个列表才被真实创建,否那么只是对之前创建列表的一次援用。函数对变量的作用上述代码func()函数的ls.append(b)语句执行时需求一个真实创建过的列表,此时fu

13、nc()函数专属的内存空间中没有曾经创建过且称号为ls的列表,因此,func()函数进一步去寻觅全局内存空间,自动关联全局ls列表,并修正其内容。当func()函数退出后,全局ls列表中的内容被修正。简单说,对于列表类型,函数可以直接运用全局列表而不需求采用global进展声明。函数对变量的作用假设func()函数内部存在一个真实创建过且称号为ls的列表,那么func()函数将操作该列表而不会修正全局变量,例子如下。函数对变量的作用总结一下,Python函数对变量的作用遵守如下原那么:简单数据类型变量无论能否与全局变量重名,仅在函数内部创建和运用,函数退出后变量被释放,如有全局同名变量,其值不

14、变;简单数据类型变量在用global保管字声明后,作为全局变量运用,函数退出后该变量保管且值被函数改动;函数对变量的作用对于组合数据类型的全局变量,假设在函数内部没有被真实创建同名变量,那么函数内部可以直接运用并修正全局变量的值;假设函数内部真实创建了组合数据类型变量,无论能否有同名全局变量,函数仅对部分变量进展操作,函数退出后部分变量被释放,全局变量值不变。函数对变量的作用datetime库的运用41;.以不同格式显示日期和时间是程序中最常用到的功能。Python提供了一个处置时间的规范函数库datetime,它提供了一系列由简单到复杂的时间处置方法。datetime库可以从系统中获得时间,

15、并以用户选择的格式输出。datetime库以格林威治时间为根底,每天由3600*24秒精准定义。该库包括两个常量:datetime.MINYEAR与datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。datetime库概述datetime库以类的方式提供多种日期和时间表达方式:datetime.date:日期表示类,可以表示年、月、日等。datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等datetime.datetime:日期和时间表示的类,功能覆盖date和timedatetime.timedelta:时间间隔有关的类

16、。datetime.tzinfo:与时区有关的信息表示类。datetime库概述由于datetime.datetime类表达方式最为丰富,主要引见这个类的运用。运用datetime类需求用import保管字,详细援用datetime类的方式如下:from datetime import datetimedatetime库概述datetime类datetime.datetime类,以下简称为datetime类的运用方式是首先创建一个datetime对象,然后经过对象的方法和属性显示时间。创建datetime对象共包括3个方法datetime.now()datetime.utcnow()datet

17、ime.datetime()datetime库解析datetime.now()datetime.now()作用:前往一个作用:前往一个datetimedatetime类型,表示当前的日期和时间,准确到微秒。类型,表示当前的日期和时间,准确到微秒。参数:参数:无无datetime库解析调用该函数,执行结果如下:datetime库解析运用datetime.utcnow()获得当前日期和时间对应的UTC世界规范时间时间对象,运用方法如下:datetime.utcnow()作用:前往一个datetime类型,表示当前日期和时间的UTC表示,准确到微秒。参数:无datetime库解析调用该函数,执行结果

18、如下:datetime库解析datetime.now()和datetime.utcnow()都前往一个datetime类型的对象,也可以直接运用datetime()构造一个日期和时间对象,运用方法如下:datetime(year, month, day, hour=0, minute=0,second=0, microsecond=0)作用:前往一个datetime类型,表示指定的日期和时间,可以准确到微秒。datetime库解析参数:参数:year: year: 指定的年份,指定的年份,MINYEAR = year = MAXYEARMINYEAR = year = MAXYEARmonth

19、: month: 指定的月份,指定的月份,1 = month = 121 = month = 12day: day: 指定的日期,指定的日期,1 = day = 1 = day = 月份所对应的日期上限月份所对应的日期上限hour: hour: 指定的小时,指定的小时,0 = hour 240 = hour 24minute: minute: 指定的分数,指定的分数,0 = minute 600 = minute 60second: second: 指定的秒数,指定的秒数,0 = second 600 = second 60microsecond: microsecond: 指定的微秒数,指定

20、的微秒数,0 = microsecond 10000000 = microsecond 1000000datetime库解析调用datetime()函数直接创建一个datetime对象,表示2021年9月16日22:33,32秒7微秒,执行结果如下:datetime库解析到此,程序曾经有了一个datetime对象,进一步可以利用这个对象的属性显示时间,为了区别datetime库名,采用上例中的someday替代生成的datetime对象,常用属性如表5.1所示datetime库解析datetime库解析属性属性描述描述属性属性someday.min固 定 返 回 d a t e t i m e

21、 的 最 小 时 间 对 象 ,datetime(1,1,1,0,0)someday.minsomeday.max固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,999999)someday.maxsomeday.year返回someday包含的年份someday.yearsomeday.month返回someday包含的月份someday.monthsomeday.day返回someday包含的日期someday.daysomeday.hour返回someday包含的小时someday.hoursomeday.minute返回someday包含的分钟someday.minutesomeday.second返回someday包含的秒钟someday.secondsomeday.microsecond返回someday包含的

温馨提示

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

评论

0/150

提交评论