浙教版 (2019)第三章 算法的程序实现3.2 Python语言程序设计图文ppt课件
展开“函数”这个术语来自数学,最早见于1692年德国教学家Leibniz(莱布尼茨)的著作如果在某一变化过程中有两个变量x和y,对于变量x在研究范围内的每一个确定的值,变量y都有惟一确定的值和它对应,那么变量x就称为自变量,而变量y则称为因变量,或变量x的函数,记为:y=f(x),f称为函数名记号f(x)则是由瑞士数学家Euler(欧拉)于1724年首次使用的在计算机领域,也继承了这种思维方式,把一段经常需要使用的代码片段封装起来,记为:y=f(x),f称为函数名,x称为参数,y称为返回值。在需要使用时可以直接调用,并且返回结果
函数是一种代码组织方法函数是为了完成某项任务而组合在一起的相关语句的集合,并被指定了一个名字可重用在Pythn语言中,函数分为两大类:Pythn语言本身提供的标准函数和程序员编写的自定义函数在编写Pythn程序时,可以使用函数来组织代码
函数定义的语法如下:def 函数名(形式参数表): # 函数体函数包括函数头和函数体。函数头以关键字def开始,紧接着函数名、形式参数并以冒号结束函数头中的参数被称为形式参数,简称形参。参数是可选的,函数可以没有参数函数可以有返回值,也可以没有返回值。有返回值的函数需要使用return语句来返回值函数体包含一个定义函数做什么的语句集合,必须相对于def向右缩进(一般是向右缩进4个空格)。通过缩进,Pythn能够识别出函数体是隶属于def的
为了使用函数,必须调用函数如果函数带有返回值,对这种函数的调用通常当作值来处理area = cmputeArea(10) # 调用cmputeArea函数,并将返回值赋给变量areaprint(cmputeArea(10)) # 调用cmputeArea函数,并将返回值传递给print函数输出如果函数没有返回值,对函数的调用必须是语句print("Prgramming is fun") # print函数没有返回值带有返回值的函数也可以当作语句调用,这种情况下,函数返回值被舍弃了cmputeArea(10) # 调用cmputeArea函数,返回值被舍弃了如果函数带有参数,当调用函数时,需要将值传递给形参,这个值被称为实际参数或实参: area = cmputeArea(10) # 10为实参如果函数的形参为空,则实参也为空,但( )不能省略:print()
这里main函数定义在cmputeArea函数之后。其实在Pythn中,函数可以定义在源程序文件的任意位置。因此,也可以在cmputeArea函数之前定义main函数cmputeArea函数中声明了形参r和变量area,main函数中也声明了变量r和area,尽管同名,但它们是不同的变量,有各自的存储单元,具有不同的作用域,不会相互干扰
当程序调用一个函数时,程序控制权就会转移到被调用的函数上。当被调用函数执行结束,被调用函数就会将程序控制权交还给调用者每次调用一个函数时,系统将参数和局部变量(称为激活记录)存储在一个称为栈(stack)的内存区域中,栈以后进先出(last-in first-ut,LIFO)的形式存储元素。函数调用结束,从栈中删除它的激活记录
【例】定义一个名为printGrade的函数,然后调用它打印给定分数的等级printGrade函数不返回任何值,在main函数中,它被作为一个语句调用
【例】定义一个名为getGrade的函数,该函数返回一个表示等级的字符,然后调用它获取给定分数的等级并输出getGrade函数返回一个字符,它可以像调用一个字符一样使用,在main函数中,它被作为一个值来处理
实际上,不管是否使用return语句,所有Pythn函数都将返回一个值如果某个函数没有返回值,默认情况下,它返回一个特殊值Nne。因此无返回值的函数也被称为Nne函数Nne可以赋值给一个变量,表示这个变量不指向任何对象
调用函数时,可以将实参传递给形参实参有两种类型:位置参数和关键字参数位置参数:要求实参按形参在函数头中的定义顺序进行传递 关键字参数:使用“形参名=值”的形式传递每个参数。使用关键字参数,实参可以以任何顺序出现
位置参数和关键字参数可以混合使用,但调用函数时所有位置参数都要出现在任何关键字参数之前。假设函数头是:def f(p1, p2, p3):f(30, p2 = 4, p3 = 10) f(30, p2 = 4, 10)
Pythn可以定义带默认参数值的函数。当调用该函数时,若没有给定实参,这些默认参数值就会作为实参传递给形参默认参数值参数和非默认参数值参数可以混用,这种情况下,非默认参数值参数必须定义在默认参数值参数之前:def printArea(width = 1, height):
有时在定义函数时,预先并不知道函数需要接受多少个实参。这时候,使用可变长参数就会非常有用可变长参数也有位置参数和关键字参数两种形式
形参名*numbers中的*让Pythn创建一个名为numbers的空元组,并将所有的实参按先后顺序收集到这个元组中,在函数体内部对这个元组进行处理调用可变长位置参数的函数时也可以传递一个元组,必须在元组名values前加上*
形参名**args中的**让Pythn创建一个名为args的空字典,并将所有的实参收集到这个字典中,每个关键字形式的参数调用,都会成为字典的一个元素,参数名成为元素的键,数据成为元素的值,在函数体内部对这个字典进行处理调用可变长关键字参数的函数时也可以传递一个字典,必须在字典名dicts前加上**
可变长参数可以和其他类型的参数混合使用定义函数时,各种类型参数出现的先后顺序是:位置参数、关键字参数、可变长位置参数、可变长关键字参数
除了用于定义函数,*和**还可用于函数调用
print_args函数有三个位置参数,调用函数时传递的是一个元组。一个元组是无法和三个参数对应的。通过在元组名args前加上*,来提醒Pythn把元组拆成三个元素,每个元素对应函数的一个位置参数,元组的三个元素分别赋予了三个参数同样,在传递字典args时,通过在字典名args前加上**,来提醒Pythn把字典拆成三个键/值对,每个键/值对作为一个关键字参数(键对应参数名,值对应参数值)传递给函数,字典的三个键/值对分别赋予了三个参数
Pythn的return语句可以返回多个值f函数返回4个值,当它被调用时,需要同时赋值给4个变量
Pythn中的所有数据都是对象,对象的变量通常都是指向对象的引用当调用一个带参数的函数时,每个实参的引用值就被传递给形参如果实参是数字或字符串,那么不管函数中的形参有没有变化,实参是不受影响的。因为数字和字符串是不可变对象,不可变对象的内容是不能被更改的
模块化使代码易于维护和调试,提高代码的重用性像前面使用过的math、randm、time等模块是Pythn中定义的标准模块,它们可以被导入到任何一个Pythn程序中自定义模块:将函数的定义放在一个被称为模块的文件中,模块文件的后缀名是.py,之后模块可以被导入到程序中以便重复使用一个模块可以包含多个函数,每个函数应该有不同的名字若在一个模块中定义了同名函数,不会出现语法错误,但优先使用最后定义的同名函数模块文件应该和使用该模块的其他程序文件一起存放在同一个地方
定义一个求最大公约数的gcd函数,存放在一个名为gcd_functin.py的模块中,在其他程序中使用该模块求最大公约数
导入整个模块:imprt 模块名。使用模块中的函数:模块名.函数名(…)例如:imprt gcd_functin gcd_functin.gcd(m, n)导入模块中的特定函数:frm 模块名 imprt 函数名。使用模块中的该函数:函数名(…)例如:frm gcd_functin imprt gcd gcd(m, n)导入模块中的所有函数:frm 模块名 imprt *。使用模块中的函数:函数名(…)例如:frm gcd_functin imprt * gcd(m, n)使用as给模块指定别名:imprt 模块名 as 别名。使用模块中的函数:别名.函数名(…)例如:imprt gcd_functin as gf gf.gcd(m, n)
变量的作用域是指变量可以在程序中被引用的范围在函数内部定义的变量被称为局部变量。局部变量只能在函数内部被访问
main函数中的变量x和f函数中的变量x是不同的变量,互不干扰。Pythn在处理时,将它们的名字变成类似main_x和f_x这样的名字
main函数中的变量x无法被f函数识别,产生NameErrr异常
变量的作用域是指变量可以在程序中被引用的范围在所有函数之外定义的变量被称为全局变量,可以被所有的函数访问
若输入一个正数,变量y被定义,值为4。若输入一个非正数,变量y没有被定义,程序出错
在fr循环中定义了变量i,循环结束后,i值为4
高中信息技术浙教版 (2019)必修1 数据与计算4.2 大数据处理课文ppt课件: 这是一份高中信息技术浙教版 (2019)必修1 数据与计算4.2 大数据处理课文ppt课件,共18页。PPT课件主要包含了创建绘图对象,画一条直线,画两条正弦曲线,设置标题与坐标轴,增加图例,改变颜色和粗细,完整程序,项目练习选考数据等内容,欢迎下载使用。
高中信息技术浙教版 (2019)必修1 数据与计算3.2 Python语言程序设计课前预习ppt课件: 这是一份高中信息技术浙教版 (2019)必修1 数据与计算3.2 Python语言程序设计课前预习ppt课件,共19页。PPT课件主要包含了为什么是Python,官网上的说明,Python缺点,安装Python,使用Python,避免缩进错误,做点计算,print函数等内容,欢迎下载使用。
信息技术3.2 Python语言程序设计课文ppt课件: 这是一份信息技术3.2 Python语言程序设计课文ppt课件,共24页。PPT课件主要包含了判定素数等内容,欢迎下载使用。