




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用运算、使用自定义函数,在这章读者们将实践函数的用法,包括定义,使用,引用等等,本书的特点是“实用”,所以这章特别说明了使用外部文件配置函数,这是一种在开发中特别有用技术。本章所涉及的技术要点包括: 1)函数要先定义再使用 2)Python的缩进格式 3)形参、实参、返回值 4)局部变量与全局变量 5)常用运算 6)利用import导入机制 7)Python的格式化输出 开门见山,看下面的例程。,案例2-1: 用函数的方法计算三角形面积,案例2-1导读,无论已经提到多少遍都要再次强调的是:python是“先定义再使用”的语言。所以函数在使用之前也需要定义。 于是,上面的程序,把6-8行的函数
2、定义放到19行之后就会有错误 案例第6行,用def关键字定义了一个函数,名字叫calcu_tri,这种形式就是函数的定义,calcu_tri函数的参数是x和y,然后使用缩进的方法标志函数的范围,calcu_tri函数只有两条语句,这两条语句的缩进(句首空格数)相同,而从第11行开始就不是calcu_tri函数的范围了。Python利用排版的缩进格式表达语句的归属范围,第7,8行的缩进格式表明,这两句话隶属于第6行定义的函数。,案例2-1导读,第7行 calcu_tri函数的功能,首先通过打印信息提示一下程序现在运行的位置 第8行 return也是一个Python语法关键字,顾名思义,函数将在此
3、返回(到调用位置),并带回一个值,即:1.0*x*y/2.0。也就是说calcu_tri函数传入参数x,y;并返回按公式1.0*x*y/2.0计算所得到的值。 第11行取消了函数calcu_tr的缩进,表示回到程序主框架的范畴,到15,16行,输入了a和h。,案例2-1导读,第17行,像数学中调用函数一样,程序将a,h当作参数调用了calcu_tri函数,然后程序加载calcu_tri函数并运行,直至运行到calcu_tri函数的return语句,在回到函数被调用的位置,可以看到第17行利用一个赋值将calcu_tri函数的值给了area然后在第18行打印。 另外 Python也支持格式化输出
4、: 第19行可以改成 print “area is ”+ :d.format(area),案例2-1导读,这里先提一下格式化输出,Python的格式化输出十分有特点,需要一段时间才能讲清楚,现在我们用不到很复杂的方式,暂时知道输出整型数用 :d.format(整型数),就行了,不用细究。 在真实的应用中,形如案例2-1的函数使用方式没什么实际用途,最大的不方便就是函数不能作为一个“工具包”被其他程序利用(即复用)。所以把函数打包十分重要,请看案例2-2。,案例2-2: 开发一个求三角形面积的工具包,案例2-2: 开发一个求三角形面积的工具包,案例2-2 示范了如何使用外部文件的资源,这样所有函
5、数都可以被新程序复用了。本案例包括两个文件,一个叫python02_m.py,程序将调用calcu_tri函数,但是这个函数在l另一个文件python02_s.py中。于是在python02_m.py的第6行: from python02_s import * 这句话说“从python02_s 中引入所有函数”,于是,在python02_m.py中可以使用calcu_tri函数了。 注意,使用from引用文件模块的时候不要有文件名的后缀“.py”,案例2-2: 开发一个求三角形面积的工具包,为什么要分成两个文件呢呢,这样就可以方便地进行工具包(函数库)的复用了,比如开发人员完成了求各种图形面积
6、的函数,那么求图2-1中的图形阴影部分面积时,只要把包含简单图形求面积的函数文件 导入(import) 进来,然后把各种函数组合一下,就完成了开发任务,这种开发就简单多了,所以尽量使用多文件机制定义函数,否则函数的功效将大打折扣。,知识梳理与扩展,函数的定义和调用 函数在调用前必须定义,比如在函数A中调用函数B,被调用的函数叫“被调函数”,例如上面提到的函数B,那么函数A就是主调函数,函数被调用时使用到的参数叫“实参”(实际参数),而函数定义时使用的参数叫形参(形式参数)。例如上面的示例,calcu_tri函数按参数排列顺序接收a,h的值到x,y中,x,y属于calcu_tri函数定义时使用的
7、参数被称为“形参”,而a,h被称为实参。calcu_tri函数中return后面的叫“返回值”。之所以出现实参、形参、返回值的说法对编程来说没什么意义,只是教学和交流时指代比较明确。,知识梳理与扩展,函数的定义和调用 在Python中形参和实参之间采用之传递的机制,形参的变化不会改变实参。例如: 运行以上简短代码,读者会发现调用函数fun1前后k的值并没有发生变化。,知识梳理与扩展,缩进格式 函数定义时需要利用缩进格式,所谓缩进是指在代码行开始部分的空格。代码行开头的前导空白用于确定语句的分组,同样的缩进级别的语句属于同一语句块。 全局变量与局部变量 简单的说在函数内部定义的变量的使用范围仅限
8、于函数内部,被称为局部变量,而不属于任何函数的变量就是全局变量,但是想要形象地理解全局变量和局部变量有一个简单的判断方法,那就是变量的作用范围由缩进格式标志的代码块确定,在一个代码块声明的变量仅限于本(级)代码块使用。,知识梳理与扩展,常用运算 Python提供丰富的计算功能,其中算术运算有: +(加), -(减), *(乘), /(除), %(取余)。他们的运算规则与常规算术运算一样,若要提高某部分表达式的运算优先级则在该部分表达式外面使用“()”,“()”的使用可以嵌套。另外进行除法运算时除数不能为0,计算机语言中的计算与日常计算不同,需要注意数据的类型,例如两个整型数据进行除法运算。 简
9、洁起见,将常用的运算总结如下表:,知识梳理与扩展,常用运算 1、括号 (),括号内的数据优先处理,括号可以嵌套使用 2、算术运算符,知识梳理与扩展,常用运算 3、关系运算符 注意:Python的关系运算和逻辑运算中用布尔值表达两种结果:True :真以及False :假。,知识梳理与扩展,常用运算 4、逻辑运算符 5、运算优先级 以上列出的运算符优先次序为:括号,算术运算,关系运算,逻辑运算,知识梳理与扩展,import模块导入机制 利用import导入机制可以将已有的函数功能模块导入程序。这个机制方便代码复用,要注意引用功能模块的文件时不需要后缀名。 格式化输出 Python支持数据的格式化
10、,优势是可以方便地将数据格式化成相应的字符串。常用的格式化功能如下: 1)基本格式:STRING.format( 表达式 ),STRING表达字符串 2)字符串中加如形如:nd的格式控制符,用以控制format中表达式的输出形式 3)常用格式控制符有::nd用来输出整形,n代表输出所占字符列数;:m.nf用来输出浮点型,m代表输出所占字符列数,n代表小数点部分的位数。 4)若指定输出的字符列数大于实际输出,则输出空格占位;若实际输出字符数大于指定,则按实际输出。,小节,对一个开发人员而言,代码复用意味着工作经验的积累,函数为开发人员提供了这种机制。开发人员可以把一些常用的功能抽象成函数形式,再
11、把同类的多个函数(例如求各种不同图形面积的的函数)打包成一个文件,这样就可以在开发其他程序中便利的使用以前的工作成果了。另外这种机制也可以支持小组开发,例如多名开发人员组成小组,规定好功能间的接口,然后分别提交不同的功能文件,通过函数的相互调用完成程序的功能。这样可以较大的提升开发效率。,小节,在定义函数的过程中要注意函数代码的范围,Python没有利用“ ”或“begin.end”来标志代码的开始与结束,Python利用了缩进这种更接近人类书写的方式,但是这种方式在针对大代码块时也有一定劣势,例如代码过长导致不能在一屏中显示所有代码时就有容易出现类似“IndentationError: unexpected indent”的错误,这个含义是是缩进错误,这是书写格式中明显的错误,按提示的行号修正就可以了。另外还有因缩进导致的逻辑错误,此类错误是隐性的,系统不会给予提示所以更加隐蔽。实际上Python的缩进书写机制鼓励开发人员尽量写短的代码,短的方法当然包括将功能尽量包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储主管岗位面试问题及答案
- 病案管理员岗位面试问题及答案
- 珠宝私人定制设计师岗位面试问题及答案
- 2025届浙江温州十五校联盟高二下化学期末质量跟踪监视模拟试题含解析
- 广东佛山市禅城区2025年化学高一下期末复习检测模拟试题含解析
- 内蒙古阿拉善2025年高二化学第二学期期末学业质量监测试题含解析
- 民航诚信管理暂行办法
- 协定税率货物管理办法
- 厦门翔安垃圾管理办法
- 我国非营利组织公信力建设的现实问题与改进策略
- 夫妻婚内财产约定协议书范本(2025年)
- 2025年中医师承合同范本文字
- 0-3岁婴幼儿感觉统合训练知到智慧树章节测试课后答案2024年秋杭州师范大学
- 抑酸药课件教学课件
- 2024译林版七年级英语上册单词(带音标)
- 北师大版数学六年级上学期期中试卷
- 新生儿重症监护室母乳使用专家共识(2024版)解读
- 病毒性脑炎诊疗指南(儿科)
- 乐器设备供货项目实施方案及售后服务方案
- 中共党史知识竞赛试题及答案
- 2020年杭州学军中学高一入学分班考试英语试卷及答案
评论
0/150
提交评论