第六章 函数电子课件.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

汇报人:WPS;目录;目录;理解函数的概念与意义。

掌握函数的定义与调用过程。

理解函数的参数与返回值。

理解变量的作用域。

理解递归思想。

了解time库的使用。

在前面的学习中已经接触了很多Python内置的函数,如print()、input()、len()等。这些函数在需要时即可随时调用,为程序的编写带来很大的便利。但内置的函数毕竟数量有限,而且主要面向通用问题。在解决具体的实际问题时,程序员能不能编制自己的函数,从而进一步利用函数的优势提升程序的质量呢?答案当然是肯定的,本章就来介绍如何定义及使用函数。;PART1;在第1章介绍turtle库时,代码1.8绘制了一个彩色的螺旋。现将代码1.8附在下方。当时这段代码中的一些细节没有正式介绍,现在回过头来重读这段代码,对其中的所有细节,尤其是列表与模运算的运用,应该都会比较清楚了。

代码1.8绘制彩色螺旋

在第1章时就提到,左转不同的度数代码会得到不同的图案。既然如此,可以将绘制图案的一般逻辑提取出来,编写为一段代码,但不限定左转度数,而是等到后期具体绘制时再指定度数,根据指定的度数不同,同一段代码可以绘制出不同的图案。

;这段代表绘制逻辑的代码就是一个函数,如代码6.1所示。

代码6.1函数的定义。

上述代码中使用def关键字定义了一个函数,名称为draw_circles(t,degree),括号内的两个变量是函数的参数。参数为函数工作提供了必要的数据,如这里的函数draw_circles()要想工作的话,就必须提供一个绘图的小海龟,以及绘制过程中左转的度数两个信息。有了这两个信息,函数内部的代码就可以完成绘制工作了。

;那么什么时候为函数提供这些参数的值呢?答案是调用的时候。代码6.1在创建了一个具体的小海龟后,通过函数名调用draw_circles()函数,并为两个参数提供了值。在参数传值时可以明确指明参数与值的对应关系,也可以如代码中注释所示的简略写法一样,通过位置来表明参数与值的对应关系。

下面总结一下函数的使用流程。在Python中,函数要先定义后调用。函数的定义使用def关键字来完成,def之后是函数名,后续调用函数时就通过这个名称来完成。函数名之后是括号,其内可以有参数,但参数不是必需的,不是所有的函数都需要参数,如random()函数。def所在行的行尾要有冒号,之后是缩进的函数体,也就是实现函数功能的具体代码。因此一个函数在定义时必须要写明函数名、括号(即使没有参数,括号也要书写)、函数体。如果需要参数,要在括号内指明,有的函数还会有返回值。调用函数比较简单,通过函数名即可,如果函数有参数,则按要求传递参数的值。

;有的读者会觉得,直接修改代码1.8中的左转度数同样可以达到绘制不同图案的目标,为什么要定义一个函数,再在调用时传递不同的度数呢?所以学习函数的另外一个重要问题是要理解编程中为什么要引入函数,函数有什么意义、价值。一言以蔽之,函数可以实现代码复用,让程序结构更清晰,实现模块化。

为了更好地理解函数的价值,可以回顾一下第3章小试牛刀中的《少年中国说》案例。该案例中有绘制长城的代码,仔细观察会发现,无论是烽火台,还是城墙,都有一系列的垛口要绘制。而绘制垛口的代码逻辑是完全一致的,只是为了表现近大远小的透视效果,垛口的尺寸有所区别。既然如此,可以将绘制垛口的代码提取出来,定义为一个函数,然后在需要绘制垛口的地方多次调用即可,如代码6.2所示。

;对于嵌套的列表,可以使用单层循环遍历,也可以使用双重循环遍历,下面代码5.5演示了使用双重循环遍历mountains列表。

代码6.2函数的意义

;代码6.2的运行结果与第3章中的并没有区别,但程序会简短一些。程序将绘制一个小垛口需要的小海龟前进、转向等一系列动作定义为一个函数draw_walls(size),其中的参数size表示垛口的宽度。这样无论是绘制两个烽火台,还是中间的一段城墙,都需要绘制一系列的垛口,只需根据尺寸大小调用这个函数即可。

像绘制垛口这样的相对独立的任务,而且有多次重复使用的需求,特别适合将其定义为一个函数,然后重复调用即可。因为完成这个工作的代码只在函数内写了一遍,其他地方都是调用这个函数,将来代码需要升级修改时也会比较方便。

对于更加复杂的程序,如果将程序拆解为若干个功能,每个功能由一个或多个函数来完成,这样整个程序就变得模块化了。将来某个功能的业务逻辑发生了变化,只需修改对应的函数即可。而且只要函数名和参数没有变化,修改函数内部代码是不影响函数的调用的。这就像银行自动柜员机外

文档评论(0)

学海无涯而人有崖 + 关注
实名认证
文档贡献者

教师资格证、人力资源管理师持证人

该用户很懒,什么也没介绍

领域认证 该用户于2023年06月11日上传了教师资格证、人力资源管理师

1亿VIP精品文档

相关文档