江红 第8章 函数.pptVIP

  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文档。上传文档
查看更多
江红 第8章 函数

递归函数的应用:汉诺塔 大梵天创造世界的时候,在世界中心贝拿勒斯的圣庙里做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。称之为汉诺塔 大梵天命令婆罗门把圆盘从一根柱子上按大小顺序重新摆放在另一根柱子上。并且规定,在三根柱子之间一次只能移动一个圆盘,且小圆盘上不能放置大圆盘。这个游戏称之为汉诺塔益智游戏 【例8.33】使用递归函数实现汉诺塔问题(hanoi.py) 内置函数的使用 eval函数(动态表达式的求值) expression是动态表达式的字符串;globals和locals是求值时使用的上下文环境的全局变量和局部变量,如果不指定,则使用当前运行上下文 exec函数(动态语句的执行) str是动态语句的字符串;globals和locals是使用的上下文环境的全局变量和局部变量,如果不指定,则使用当前运行上下文 compile函数(动态语句的执行) source为代码语句的字符串;如果是多行语句,则每一行的结尾必须有换行符\n。filename为包含代码的文件。mode为编译模式,可以为:exec(用于语句系列执行)、eval(用于表达式求值)和single(用于单个交互语句) 实验和习题 上机实践1~4 复习题 单选题 填空题 思考题 Ch08 函数 本章要点: 函数概述 函数的声明和调用 参数的传递 函数的返回值 变量的作用域 递归函数 内置函数的使用 函数概述 函数的基本概念 函数用于在程序中分离不同的任务 函数允许程序的控制在调用代码和函数代码之间切换 函数的功能 Python函数分类 (1)内置函数。Python语言内置了若干常用的函数,例如abs()、len()等等,在程序中可以直接使用 (2)标准库函数。Python语言安装程序同时会安装若干标准库,例如math、random等等。通过import语句,可以导入标准库,然后使用其中定义的函数 (3)第三方库函数。Python社区提供了许多其他高质量的库,如Python图像库等等。下载安装这些库后,通过import语句,可以导入库,然后使用其中定义的函数 (4)用户自定义函数。本章将详细讨论函数的定义和调用方法 函数的声明和调用 【例8.1】函数创建示例1:定义返回两个数平均值的函数 【例8.2】函数创建示例2:定义打印n个星号的无返回值的函数 【例8.3】函数创建示例3:定义计算并返回第n阶调和数(1 + 1/2 + 1/3 + … + 1/n)的函数 函数的调用 【例8.4】函数的调用示例1(triangle.py):先定义一个打印n个星号的无返回值的函数print_star(n),然后从命令行第一个参数中获取所需打印的三角形的行数lines,并循环调用print_star()函数输出由星号构成的等腰三角形,每行打印1、3、5、... 2*lines-1个星号 【例8.5】函数的调用示例2 先一个定义计算并返回第n阶调和数(1 + 1/2 + 1/3 + … + 1/n)的函数,输出前n个调和数 作为对象的函数 【例8.6】作为对象的函数示例1 【例8.7】作为参数的函数示例2 Lamda表达式和匿名函数 【例8.8】匿名函数示例 【例8.9】匿名函数应用示例:利用匿名函数输出列表中所有大于零的数值 函数的副作用 纯函数(pure function) 接收一个或多个参数,通过计算,返回一个值 函数的副作用 读取键盘输入、产生输出、改变系统的状态等 函数print_star(n)的副作用是向标准输出写入若干星号 参数的传递 形式参数和实际参数 声明函数时所声明的参数,即为形式参数,简称形参 用函数时,提供函数所需要的参数的值,即为实际参数,简称实参 【例8.10】形式参数和实际参数示例(my_max1.py) 形式参数变量和对象引用传递 声明函数时声明的形式参数,等同于函数体中的局部变量,在函数体中的任何位置都可以使用 局部变量和形式参数变量的区别在于,局部变量在函数体中绑定到某个对象;而形式参数变量则绑定到函数调用代码传递的对应实际参数对象 Python参数传递方法是传递对象引用,而不是传递对象的值 传递不可变对象的引用 如果函数体中修改对象的值,其结果实际上是创建了一个新的对象 【例8.11】传递不可变对象的引用示例(inc1.py):错误的递增函数 【例8.12】传递不可变对象的引用示例(inc2.py):正确的递增函数 传递可变对象的引用 调用函数时,如果传递的是可变对象(例如:list对象)的引用,则函数体中可以直接修改对象的值 【例8.13】传递可变对象引用的函数示例1:定义一个可以交换给定列表中两个指定下标的元素值的函数 【例8.14】传递可变对象引用的函数示例2:随机混排给定列表的元素

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档