程序设计思想与方法——第五章.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计思想与方法——第五章

函数用途:减少重复代码 编程实例:画一棵树 print * print *** print ***** print ******* print * print *** print ***** print ******* print # print # print # 重复代码的弊端 程序不必要地冗长 代码一致性维护麻烦:若修改一处代码,则所有重复的地方都要一致地修改 程序看上去累赘不美观 输入大量重复代码很单调乏味 函数用途:改善程序结构(1) 模块化:将程序分解成多个较小的相对独立的函数,可使程序结构清晰,容易理解. 函数用途:改善程序结构(2) 函数用途:提高程序通用性 换用^字符来画树,以便比较美观度. 函数调用过程 函数定义 def 函数名(形参列表): 函数体 函数调用 函数名(实参列表) 调用者暂停 函数形参被赋值为实参 执行函数体 控制返回调用者(调用点的下一条语句) 函数调用过程图解(1) 函数调用过程图解(2) 函数调用过程图解(3) 参数传递 对于函数定义 def f(x,y,z): ... 按位置传递 f(1,2,3) 按名传递:形参=实参 f(x=1,z=3,y=2) 实参可以是字面值,也可以是已赋值的变量 f(1,a,b) 变量的作用域 变量具有作用域(scope):即可以引用该变量的程序区域. 不同作用域中的变量,即使同名,也是不同的变量! 作用域可以是局部,也可以是全局 函数中定义的变量是局部的:即作用域是函数体. 函数的形参可视为局部变量,只不过是在调用时才赋值. x,y = 0,0 def f(x): y = 1 print x,y f(x) print x,y 函数如何使用外部数据 Python中,函数体可直接引用外部的变量. x = 0 def f(y): z = 1 print x,y,z f(10) 但这用法很不好!不符合模块化要求. 应当通过参数向函数传递数据 x = 0 def f(p,y): z = 1 print p,y,z f(x,10) 全局变量 函数若需引用并修改外部变量,可声明全局变量 x = 1 def f(): print x #未定义变量视为全局变量 x = 2 #赋值引入局部变量,则前行出错! f() def h(): global x print x x = 2 #此赋值是针对全局变量的 print x h() 全局变量的用途 多个函数处理共享数据 def f(): global x x = x + 1 print x def g(): global x x = x – 1 print x x = 0 f() g() 函数的返回值 函数与调用者之间的信息交互: 通过形参从调用者输入值 通过返回值向调用者输出值 定义 def 函数名(形参): …… return 表达式列表 return计算各表达式,将结果返回调用者,退出函数 函数返回值的使用 如果没有或者用不上函数返回值,则函数调用可以直接当成一条语句 f(3) 相当于某些语言中的过程调用 如果想使用函数返回值,则有两种用法 用变量接收返回值,如 x = f(3) print 2 + x * 4 直接用在表达式中,如 print 2 + f(3) * 4 忘记接收函数返回值是Python初学者的常见错误 函数返回值使用例(1) def sq(x): return x * x sq(2) 4 print sq(3) + 1 10 a = 4 b = sq(a) print b 16 函数返回值使用例(2) 求两点距离的函数 from math import sqrt def sq(x): return x * x def dist(u,v): d = sqrt(sq(v[0]-u[0])+sq(v[1]-u[1])) return d 用一个函数辅助定义另一个函数,这是化繁为简的常用做法. 函数返回值使用例(3) 多个返回值的接收 def headtail(list): return list[0],list[len(list)-1] 用多个变量 h,t = headtail([1,2,3,4,5]) print h,t 1 5 用一个变量,接受的值是元组. v = headtail([1,2,3,4,5]) v (1,

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档