上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter06 函数

函数

什么是函数? 基本思想 一给出语句序列,并给这个序列一个名字 用来组织语句,便于掌控程序的开发 一功能切割,模块化,结构化 一次定义多次使用 函数是一种程序构件,是构成大程序的小程序。 一先定义后调用 通过函数名调用之 调用时传递参量 调用执行的是函数体(语句序列) 调用产生返回值 2
2

什么是函数? 我们已经熟悉的函数: -自己编的函数,如常用的main() -Python内建函数,如abs()(语言的一部分) -Python标准库函数,如math.sgrt()和string.split() - 对象的方法,如win.close()和p.draw() User defined (def) Python built-in functions Library (import) 3
3 Python built-in functions Library (import) User defined (def)

为什么需要函数? 编程更容易把握 ■复杂程序分解成较小部件、子程序 ■代码可重用 一提高开发效率 一更易维护 -如:库 4
4

为什么需要函数? ■代码更简洁、美观 减少重复编码 程序更易理解 一读程序是很困难的 一结构、注解有助于理解程序 5
5

编程实例:生日歌 ■用函数减少重复代码 def main() 重复代码的坏处: print "Happy birthday to you!" 1.费时费力 print "Happy birthday to you!" print "Happy birthday,dear Fred." 2.代码维护的一 print "Happy birthday to you!" 致性(例如:单 词拼写错误) def happy () print "Happy birthday to you!" def singFred(): happy ( happy ( print "Happy birthday,dear Fred." happy (
重复代码的坏处: 1. 费时费力 2.代码维护的一 致性(例如:单 词拼写错误)

编程实例生日歌(续) ■用参量增强函数的通用性(代码可重用) def singLucy () def main(): singFred() singLucy ( ↓ def sing(person): happy ( happy ( print "Happy birthday,dear",person +. happy ( def main(): sing (Fred") sing (Lucy") sing (Elmer")

实例分析:futval.3.py futval,2.py两处画柱子的代码是类似的 一循环外的初始柱子 一循环内的每年的柱子 解决方法 把共同性抽取出来,可变的作为参数 8
8

实例分析:futval.3.py 解决方法 def drawBar (window,year,height): bar Rectangle(Point(year,0),Point(year+1,height)) bar.setFill("green") bar.setwidth(2) bar.draw (window) 初始:drawBar(win,0,2000) 每年:drawBar(win,Year,height) 完整程序futval:3.py(简洁,易理解,便于维护) 9
9

函数与参量 考虑函数定义 def drawBar(window,year,height) - 参量一般代表可变的部分,如year和neight window并不变,为何作为参量? 变量作用域(scope):即可以引用该变量的 区域
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)Chapter05 面向对象与图形编程.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter04 字符串计算.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter03 数值计算.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter02 程序基本构件.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter01 课程简介、计算机与程序.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源_期末大作业要求.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源_往年试卷_CT2012-A卷-final.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源_往年试卷_CT2012-A卷-final 2_参考答案.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源_参考教材_参考教材-python-programming.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源_参考教材_参考教材-2002版-PythonProgrammingBook.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源_参考教材_HowToThink-Python.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源_作业_第一次作业内容要求.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源_作业_第一次作业内容要求.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第四次上机_Python第四次上机题目.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第五次上机_第五次上机.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第三次上机_Python第三次上机解析-update.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第三次上机_python第三次上机.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第一次上机_第一次上机内容_10.18.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第一次上机_第一次上机内容_10.18.doc
- 上海交通大学:《科学计算》课程教学资源(英文讲义)Lecture Note 4:Numerical differentiation and integration.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter07 控制结构(条件语句).ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter08 控制结构(循环语句).ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)Chapter10 类的定义.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter11 数据集合体.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter9 模拟与设计.ppt
- 《Embedded System LAB》教学资源:KEIL Tools by ARM Getting Startedu Creating Applications withμVision®(uv4).pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源(上机课)第二次上机_第二次上机题目_11.1.doc
- 《程序设计思想与方法》课程教学资源(课程参考书PDF电子版)PYTHON programming:AN INTRODUCTION TO COMPUTER SCIENCE(JOHN ZELLE).pdf
- 《程序设计思想与方法》课程教学资源(课程参考书PDF电子版)Python Programming:An Introduction to Computer Science(2002版).pdf
- 《程序设计思想与方法》课程教学资源(课程参考书PDF电子版)How to Think Like a Computer Scientist Learning with Python.pdf
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter01 课程简介、计算机与程序.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter02 程序基本构件.ppt
- 上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)chapter03 数值计算.ppt
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)00. Course Introduction.pptx
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)01. Introduction to Software Engineering.pptx
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)10.Mapping Models to Code.pptx
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)11.Testing.pptx
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)02. Modeling with UML.pdf
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)03. Project Organization and Management.pdf
- 上海交通大学:《面向对象软件工程 Software Engineering》课程教学资源(PPT课件讲稿)04. Requirements Elicitation.pdf