书签 分享 收藏 举报 版权申诉 / 58
上传文档赚钱

类型Python电子教案5-1-函数和代码复用-p课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:5850988
  • 上传时间:2023-05-12
  • 格式:PPT
  • 页数:58
  • 大小:864.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Python电子教案5-1-函数和代码复用-p课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python 电子 教案 函数 代码 课件
    资源描述:

    1、函数的基本使用1ppt课件 函数是一段具有特定功能的、可重用的语句组,用函数名来表示并通过函数名完成功能调用。函数也可以看作一段具有名字的子程序,可以在需要的地方调用执行,不需要在每个执行地方重复编写这些语句。每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应的结果。函数能够完成特定功能,与黑盒类似,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。严格说,函数是一种功能抽象。函数的定义 有些函数是用户自己编写的,称为自定义函数;Python安装包也自带了一些函数和方法,包括Python内置的函数(如abs()、eval())、Py

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

    3、时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。函数定义中参数列表里面的参数是形式参数,简称为“形参”。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句,在函数体结束位置将控制权返回给调用者。函数的定义 函数调用和执行的一般形式是:()此时,参数列表中给出要传进入函数内部的参数,这类参数称为实际参数,简称为“实参”。函数的定义 编写程序为Mike和Lily输出生日歌。最简单的实现方法是重复使用print()语句,对Mike的生日歌输出如下:微实例5.1

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

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

    6、赋值为实参的值,类似执行了如下语句:name=Mike函数的调用过程 然后,使用实参代替形参执行函数体内容。当函数执行完毕后,重新回到第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函数函数的参数传递21ppt课件 在定义函数时,如果有些参数存在默认值,即部分

    8、参数不一定需要调用程序输入,可以在定义函数时直接为这些参数指定默认值。当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代,例如:可选参数和可变数量参数 由于函数调用时需要按顺序输入参数,可选参数必须定义在非可选参数的后面,即dup()函数中带默认值的可选参数times必须定义在str参数后面。在函数定义时,也可以设计可变数量参数,通过参数前增加星号(*)实现。带有星号的可变参数只能出现在参数列表的最后。调用时,这些参数被当作元组类型传递到函数中,实例如下。可选参数和可变数量参数 vfunc()函数定义了可变参数b,调用vfunc()函数时输入的(2,3,4,5)被当作元组传

    9、递给b,与a累加后输出。第6.1节将详细介绍元组类型,这里请读者将元组理解为一组元素。可选参数和可变数量参数 函数调用时,实参默认采用按照位置顺序的方式传递给函数,例如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()函数。函

    11、数也可以用return返回多个值,多个值以元组类型保存变量的返回值 一个程序中的变量包括两类:全局变量和局部变量。全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效。局部变量指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在。例子如下。函数对变量的作用函数对变量的作用 这个例子说明,当函数执行完退出后,其内部变量将被释放。如果函数内部使用了全局变量呢?例子如下。函数对变量的作用 函数func()内部使用了变量n,并且将变量参数b赋值给变量n,为何n值没有改变?函数func()有自己的内存空间,它将n=b语句理解为生成一个局部变量n,并将参数b赋值给它,此时fun

    12、c()函数没有将n当作全局变量。所以,函数退出后,局部变量n被释放,全局变量n的值没有修改。函数对变量的作用 如果希望让func()函数将n当作全局变量,需要在变量n使用前显式声明该变量为全局变量,代码如下。函数对变量的作用 如果此时的全局变量不是整数n,而是列表类型ls,会怎么样呢?理解如下代码。函数对变量的作用 请读者注意,奇迹产生了,全局列表变量在函数func()调用后竟然发生了改变!列表等组合数据类型由于操作多个数据,所以它们在使用中有创建和引用的分别。当列表变量被方括号(,无论是否为空)赋值时,这个列表才被真实创建,否则只是对之前创建列表的一次引用。函数对变量的作用 上述代码func

    13、()函数的ls.append(b)语句执行时需要一个真实创建过的列表,此时func()函数专属的内存空间中没有已经创建过且名称为ls的列表,因此,func()函数进一步去寻找全局内存空间,自动关联全局ls列表,并修改其内容。当func()函数退出后,全局ls列表中的内容被修改。简单说,对于列表类型,函数可以直接使用全局列表而不需要采用global进行声明。函数对变量的作用 如果func()函数内部存在一个真实创建过且名称为ls的列表,则func()函数将操作该列表而不会修改全局变量,例子如下。函数对变量的作用 总结一下,Python函数对变量的作用遵守如下原则:简单数据类型变量无论是否与全局变

    14、量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变;简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变;函数对变量的作用 对于组合数据类型的全局变量,如果在函数内部没有被真实创建同名变量,则函数内部可以直接使用并修改全局变量的值;如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。函数对变量的作用datetime库的使用41ppt课件 以不同格式显示日期和时间是程序中最常用到的功能。Python提供了一个处理时间的标准函数库datetim

    15、e,它提供了一系列由简单到复杂的时间处理方法。datetime库可以从系统中获得时间,并以用户选择的格式输出。datetime库以格林威治时间为基础,每天由3600*24秒精准定义。该库包括两个常量:datetime.MINYEAR与datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。datetime库概述 datetime库以类的方式提供多种日期和时间表达方式:datetime.date:日期表示类,可以表示年、月、日等。datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等datetime.datetime:日期和时间表

    16、示的类,功能覆盖date和timedatetime.timedelta:时间间隔有关的类。datetime.tzinfo:与时区有关的信息表示类。datetime库概述 由于datetime.datetime类表达形式最为丰富,主要介绍这个类的使用。使用datetime类需要用import保留字,具体引用datetime类的方式如下:from datetime import datetimefrom datetime import datetimedatetime库概述 datetime类(datetime.datetime类,以下简称为datetime类)的使用方式是首先创建一个dateti

    17、me对象,然后通过对象的方法和属性显示时间。创建datetime对象共包括3个方法datetime.now()datetime.utcnow()datetime.datetime()datetime库解析 datetime.now()datetime.now()作用作用:返回一个datetime类型,表示当前的日期和时间,精确到微秒。参数参数:无datetime库解析 调用该函数,执行结果如下:datetime库解析 使用datetime.utcnow()获得当前日期和时间对应的UTC(世界标准时间)时间对象,使用方法如下:datetime.utcnow()datetime.utcnow()作

    18、用作用:返回一个datetime类型,表示当前日期和时间的UTC表示,精确到微秒。参数参数:无datetime库解析 调用该函数,执行结果如下:datetime库解析 datetime.now()和datetime.utcnow()都返回一个datetime类型的对象,也可以直接使用datetime()构造一个日期和时间对象,使用方法如下:datetime(year,month,day,hour=0,minute=0,datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)second=0,microsecond=0)作用作

    19、用:返回一个datetime类型,表示指定的日期和时间,可以精确到微秒。datetime库解析 参数参数:year:指定的年份,MINYEAR=year=MAXYEARmonth:指定的月份,1=month=12day:指定的日期,1=day=月份所对应的日期上限hour:指定的小时,0=hour 24minute:指定的分数,0=minute 60second:指定的秒数,0=second 60microsecond:指定的微秒数,0=microsecond 1000000datetime库解析 调用datetime()函数直接创建一个datetime对象,表示2016年9月16日22:33

    20、,32秒7微秒,执行结果如下:datetime库解析 到此,程序已经有了一个datetime对象,进一步可以利用这个对象的属性显示时间,为了区别datetime库名,采用上例中的someday代替生成的datetime对象,常用属性如表5.1所示datetime库解析datetime库解析属性属性描述描述属性属性someday.min固 定 返 回 d a t e t i m e 的 最 小 时 间 对 象,datetime(1,1,1,0,0)someday.minsomeday.max固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,9999

    21、99)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包含的微秒值someday.microsec

    22、ond datetime对象有3个常用的时间格式化方法,如表5.2所示。datetime库解析属性属性描述描述属性属性someday.isoformat()采用ISO 8601标准显示时间someday.isoformat()someday.isoweekday()根据日期计算星期后返回1-7,对应星期一到星期日someday.isoweekday()someday.strftime(format)根据格式化字符串format进行格式显示的方法someday.strftime(format)strftime()方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符

    23、串,示例如下,表5.3给出了strftime()方法的格式化控制符。datetime库解析datetime库解析格式化字符串格式化字符串日期日期/时间时间值范围和实例值范围和实例%Y年份00019999,例如:1900%m月份0112,例如:10%B月名JanuaryDecember,例如:April%b月名缩写JanDec,例如:Apr%d日期01 31,例如:25%A星期MondaySunday,例如:Wednesday%a星期缩写MonSun,例如:Wed%H小时(24h制)00 23,例如:12%I小时(12h制)01 12,例如:7%p上/下午AM,PM,例如:PM%M分钟00 59,例如:26%S秒00 59,例如:26 strftime()格式化字符串的数字左侧会自动补零,上述格式也可以与print()的格式化函数一起使用,给出一些例子:datetime库解析

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python电子教案5-1-函数和代码复用-p课件.ppt
    链接地址:https://www.163wenku.com/p-5850988.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库