




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机编程导论
课程建设组编著2013.10第6章函数的设计和使用1.问题的引入2.
函数基础知识
6.1问题的引入【问题6-1】计算三个圆的面积和周长,这三个圆的半径分别为2,3,4。分析:按照已学过的知识,解决该问题的程序如下:#Ques6_1.pya=2area_a=3.14*a*aperimeter_a=3.14*2*aprint'半径为2的圆的面积为:',area_aprint'半径为2的圆的周长为:',perimeter_ab=3area_b=3.14*b*bperimeter_b=3.14*2*bprint'半径为3的圆的面积为:',area_bprint'半径为3的圆的周长为:',perimeter_barea_c=3.14*c*cperimeter_c=3.14*2*cprint'半径为3的圆的面积为:',area_cprint'半径为3的圆的周长为:',perimeter_c程序运行结果:半径为2的圆的面积为:12.56半径为2的圆的周长为:12.56半径为3的圆的面积为:28.26半径为3的圆的周长为:18.84
这三段基本相同的代码是否能够只写一次呢?
对于这样的问题,我们可以使用函数来解决,使计算圆面积和周长的这段代码得以重用。6.2黑箱模型6.3
函数基础知识6.3.1函数的定义函数定义格式如下:def函数名(参数):……(函数体)函数定义格式如下:def函数名(参数):……(函数体)函数定义格式如下:def函数名([参数]):……(函数体)【例6-1】定义一个输出函数,打印出HelloWorld!。
开始调用函数sayHello()结束框图:
程序:#Exp6_1.py
defsayHello():#函数定义
print'HelloWorld!'#函数体
#主程序sayHello()#函数调用程序运行结果:HelloWorld!同学们会定义函数了吗?6.3.2形参和实参
在定义函数时,函数名后面括号中的变量称为形参
在调用函数时,可以通过参数将一些值传递给函数处理,这些在调用函数时提供给函数的值称为实参。【例6-2】6.1节中的问题用函数调用的办法来编写程序。程序:
#Exp6_3.py
defcircle(r): area=3.14*r*r perimeter=2*3.14*r print('半径为',r,'的圆面积为:',area) print('半径为',r,'的圆周长为:',perimeter)#主程序
circle(2)#函数调用circle(3)#函数调用circle(4)#函数调用参数传递示意图
大路小路【例6-3】编写函数,实现比较两个数的大小,并输出其中较大的数,并调用函数。程序:
#Exp6_3.pydefprintMax(a,b):
ifa>b:
pirnt(a,'isthemax')
else:
print(b,'isthemax')#主程序
printMax(3,4)#传递两个实数实参x=5y=7printMax(x,y)#传递两个变量实参printMax(x+x,y)
程序运行结果:4isthemax
7isthemax6.3.3return语句return语句用来从一个函数中返回,即跳出函数,也可用return语句从函数中返回一个值。【例6-4】用return语句返回值。#Exp6_4.pydefmaximum(x,y): ifx>y:
returnx else:
returny#主程序printmaximum(2,3)程序运行结果:36.4
变量的作用域
当引入函数的概念之后,就出现了变量作用域的问题。变量起作用的范围称为变量的作用域。一个变量在函数外部定义和在函数内部定义,其作用域是不同的。如果我们用特殊的关键字定义一个变量,也会改变其作用域。6.4.1局部变量在函数内定义的变量只在该函数内起作用,称为局部变量。【例6-5】使用局部变量。#Exp6_5.pydeffunc(x):print'xis',xx=2print'changedlocalxto',x#主程序x=50func(x)print'xisstill',x程序运行结果:xis50changedlocalxto2xisstill506.4.2全局变量如果想要在函数内部给一个定义在函数外的变量赋值,那么这个变量就不能是局部的,其作用域必须为全局的,能够同时作用于函数内外,称为全局变量,可以通过global来定义。(1)一个变量已在函数外定义,如果在函数内需要为这个变量赋值,并要将这个赋值结果反映到函数外,可以在函数内用global声明这个变量,将其定义为全局变量。(2)在函数内部直接将一个变量声明为全局变量,在函数外没有声明,在调用这个函数之后,将增加为新的全局变量。【例6-6】在函数内使用外部定义的全局变量。#Exp6_6.pydeffunc():globalxprint'xis',xx=2print'changedlocalxto',x#主程序x=50func()print'valueofxis',x程序运行结果:xis50changedlocalxto2valueofxis2【例6-7】把函数内定义的变量声明为全局变量。#Exp6_7.pydeffunc():globalxx=2print'x=',x#主程序func()print'x=',x程序运行结果:x=2x=26.5参数的类型6.5.1默认参数def函数名(形参名=默认值,……)【例6-8】使用默认参数值。程序:#Exp6_8.pydefsay(message,times=1): printmessage*times#主程序say('Hello')say('World',5)程序运行结果:HelloWorldWorldWorldWorldWorld6.5参数的类型6.5.2关键参数
指实参【例6-9】使用关键参数。#Exp6_9.pydeffunc(a,b=5,c=10):print'ais',a,'andbis',b,'andcis',c#主程序func(3,7)func(25,c=24)func(c=50,a=100)程序运行结果:ais
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省淮安市本年度(2025)小学一年级数学统编版阶段练习(下学期)试卷及答案
- 2025-2030年中国散热排风机市场运行新形势与投资前景报告
- 大学生要如何网络安全防范论文
- 英语中国文化阅读教学设计
- 2025届江苏省徐州一中高三六校第一次联考英语试卷含解析
- 湖南省长沙市岳麓区湖南师范大学附中2025届高三(最后冲刺)英语试卷含解析
- 职业技能鉴定初级光纤通信模拟题及参考答案
- 【9道 一模】2025年4月邯郸市邯山区七校联考中考一模道法试卷含答案
- 北京市第五十七中学2024-2025学年高二下学期期中考试英语试题(原卷版+解析版)
- 稀有金属矿选矿厂安全生产标准化实施指南考核试卷
- 年产吲哚美辛的生产设计设计说明书
- QD型吊钩桥式起重机使用维护说明书
- 学校安全事故应急处置流程图
- 车位租赁合同证明书
- GB/T 3091-2015低压流体输送用焊接钢管
- 广东省国家公务员录用体检表
- GB/T 19582.2-2008基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南
- GB/T 12686-2017草甘膦原药
- 细胞的能量“货币”ATP说课课件-高一上学期生物人教版必修1
- 企业合规管理培训课件讲义
- 解剖学课件神经系统课件
评论
0/150
提交评论