内容正文:
任务5.1 函数的定义与调用
名片管理器
各位同学,下面我们来讲解一下函数的定义与调用。
5.1 函数的定义与调用——名片管理器
【任务描述】
名片管理器是一种实用的生活工具,用来帮助管理手机中的各类名片。它需要实现以下功能:名片的添加、名片的删除、名片的修改、名片的查询、获取所有名片信息、系统退出等,其管理界面如图5-1所示。
5.1 函数的定义与调用——名片管理器
【任务分析】
名片管理器的实现需要用到函数的定义和调用。每个功能的实现都需要定义一个函数,可以先设计4个子函数来实现添加名片、删除名片、修改名片信息和显示所有名片的功能;然后定义一个主函数来调用这些子函数,主函数同时要实现系统的退出功能。
5.1 函数的定义与调用——名片管理器
函数及其作用
函数的定义
函数的调用
什么是函数?函数对我们来说其实并不陌生,在前面的章节我们或多或少地使用过函数,只不过它们都是已经定义好的,我们直接调用就可以了。其实函数可以理解为一段功能或者说一段代码的表示。它对应一段可重用的特定的语句组,它是一种功能的抽象,表达特定的含义。在程序设计中,函数通常有两个作用,一个是降低编码的难度,一个是提高代码的重用率。比如一个数学函数ABS(),它用来求实数的绝对值,我们只管拿来用就是了,而不用管它的内部是如何实现的。另外当我们定义了一个函数,在编程中需要用到相关功能,我们可以直接调用函数就可以了,实现代码的复用。下面我们来讲一下如何定义一个函数
5.1 函数的定义与调用——名片管理器
5.1.1 函数的定义与调用
5.1.2 函数参数
5.1.3 函数返回值
5.1.4 变量作用域
5.1.5 任务实现——名片管理器
5.1.1 函数的定义与调用
各位同学,下面我们来讲解一下函数的定义与调用。
5.1.1 函数的定义与调用
函数是有组织的、可重复使用的、用来实现单一功能的代码段,它能够增强程序的模块化并提高代码的复用率。
Python提供了许多内置函数,如前面已经学习过的print()函数、组合数据类型中的各种常用方法等。
开发人员可以自己创建函数,即自定义函数,用来实现特定功能。
函数的定义其实很简单,使用关键字def,后面跟上函数名,然后是括号,里面存放参数列表。函数名的命名和标识符一样,只能是字母、数字和下划线的任何组合,但是不能以数字开头,并且不能跟关键字重名。括号里的参数列表接收传入函数的参数,可以为空,也可以包含多个或者一个参数,后面跟上冒号,冒号后面开始写函数体,并且需要缩进。一个函数有一个return表达式,用来结束函数,选择性地返回一个值给调用方。另外需要注意的是如果函数 没有return,则函数返回 None给调用方。我们来看一个例子
5.1.1 函数的定义与调用
def 函数名(参数列表):
函数体
return 表达式
1.函数的定义
在Python中定义函数需要使用保留字def,其语法格式为:
函数的定义其实很简单,使用关键字def,后面跟上函数名,然后是括号,里面存放参数列表。函数名的命名和标识符一样,只能是字母、数字和下划线的任何组合,但是不能以数字开头,并且不能跟关键字重名。括号里的参数列表接收传入函数的参数,可以为空,也可以包含多个或者一个参数,后面跟上冒号,冒号后面开始写函数体,并且需要缩进。一个函数有一个return表达式,用来结束函数,选择性地返回一个值给调用方。另外需要注意的是如果函数 没有return,则函数返回 None给调用方。我们来看一个例子
5.1.1 函数的定义与调用
def 函数名(参数列表):
函数体
return 表达式
Python中使用自定义函数时,需要遵循以下规则:
(1)函数代码块以def关键字开头,后接函数名称和圆括号()。
(2)任何传入参数和自变量都必须放在圆括号中间,函数可以没有参数,但圆括号不可以省略。
(3)函数名的命名规则和变量的命名规则一样,只能是字母、数字和下画线的任意组合,但是不能以数字开头,并且不能跟关键字重名。
(4)函数的第一行语句可以选择性地使用文档字符串来存放函数说明。
(5)函数内容以冒号开始,并且缩进。
(6)在以return表达式结束函数时,需要返回对应的结果给调用方,不带return表达式的函数则相当于返回None。在函数没有返回值时可以省略return语句。
函数的定义其实很简单,使用关键字def,后面跟上函数名,然后是括号,里面存放参数列表。函数名的命名和标识符一样,只能是字母、数字和下划线的任何组合,但是不能以数字开头,并且不能跟关键字重名。括号里的参数列表接收传入函数的参数,可以为空,也可以包含多个或者一个参数,后面跟上冒号,冒号后面开始写函数体,并且需要缩进。一个函数有一个return表达式,用来结束函数,选择性地返回一个值给调用方。另外需要注意的是如果函数 没有return,则函数返回 None给调用方。我们来看一个例子
5.1.1 函数的定义与调用
【例5-1】函数定义。
def add(a,b):
“””求两数和,并返回”””
result=a+b
return result
add(8,10) #函数调用
18
比如我们计算两个数的和。我们可以定义一个函数,它的名称叫add,后面跟上括号,参数a和b,在函数体内我们设一个变量result,并把a和b的和赋值给result,最后通过return语句返回result。这就是一个基本函数。
5.1.1 函数的定义与调用
即学即答:
关于Python函数,以下选项中描述错误的是( )。
A.函数是一段可重用的代码块
B.函数通过函数名进行调用
C.每次使用函数都需要提供相同的参数作为输入
D.函数是一段具有特定功能的代码块
2.函数的调用
在定义函数之后,就相当于有了一段具有特定功能的代码,但是并没有运行,要想让这些代码能够执行,则需要调用函数。调用函数的方式很简单,通过“函数名([参数列表])”即可完成调用。
def add(a,b):
“””求两数和,并返回”””
result=a+b
return result
add(3,4) #函数调用
5.1.1 函数的定义与调用
调用是程序编写的一个专有名词,它指的是运行函数代码的方式。比如我们上面定义的函数add,返回一个result,程序碰到代码并不会执行去,如果要执行它,程序需要使用函数的使用方式。所谓调用就是用函数的名,给定一个具体的参数值。调用时给定的具体参数是运行函数的输入。要用实际的参数替换定义时的占位参数,也称为形参,函数调用后,我们会得到实际参数的运行结果。下面我们看下具体调用过程。
2.函数的定义和调用
result=a+b
return resulturn result
def add(a,b):
add(8,10)
函数体
调用函数
a,b是形参
函数定义
70,80是实参
add(8,10)函数的调用,经过了以下步骤:
(1)将参数8,10传递给add(x,y)。
(2)执行函数体中的语句。
(3)返回add(8,10),继续执行程序。
比如我们调用函数add(70,80),然后把结果赋给a,并把它打印出来,程序看到以后,会去找到定义的函数add,并且将给定的实际参数70,80赋值给函数中间的a和b,然后去执行函数体相关的程序,函数体里面的a+b会被替换成70+80,并把结果150赋值给result,然后返回result,也即返回150。这个150赋值给了a,这时打印a,就显示150 。这就是一个函数的调用过程。
3.函数的嵌套
嵌套调用就是一个函数调用另一个函数,被调用的函数又进一步调用另一个函数,形成一层一层的嵌套关系。一个复杂的程序存在多层的函数调用。
5.1.1 函数的定义与调用
调用是程序编写的一个专有名词,它指的是运行函数代码的方式。比如我们上面定义的函数add,返回一个result,程序碰到代码并不会执行去,如果要执行它,程序需要使用函数的使用方式。所谓调用就是用函数的名,给定一个具体的参数值。调用时给定的具体参数是运行函数的输入。要用实际的参数替换定义时的占位参数,也称为形参,函数调用后,我们会得到实际参数的运行结果。下面我们看下具体调用过程。
下面的例子中求两数的平均数,代码如下:
【例5-2】函数嵌套调用。
5.1.1 函数的定义与调用
# 两数之和def add(x,y): # 函数定义 c=x+y print(c) return c # 有return值 # 两数的平均数def average(): sum=add(8,10) # 嵌套调用 ave=sum/2 return averesult=average() # 函数调用print(result)
18
9.0
调用是程序编写的一个专有名词,它指的是运行函数代码的方式。比如我们上面定义的函数add,返回一个result,程序碰到代码并不会执行去,如果要执行它,程序需要使用函数的使用方式。所谓调用就是用函数的名,给定一个具体的参数值。调用时给定的具体参数是运行函数的输入。要用实际的参数替换定义时的占位参数,也称为形参,函数调用后,我们会得到实际参数的运行结果。下面我们看下具体调用过程。
这个例子中的循环嵌套实现了求两数的平均数。先定义add(x,y)函数并求出两数之和,再定义average()函数求两数的平均数,这里运用了函数的嵌套调用,在 average()函数中调用了add(x,y)函数。执行过程如图所示:
5.1.1 函数的定义与调用
result=average()
def average():
sum=add(8,10)
ave=sum/2
retrun ave
def add(x,y):
c=x+y
print(c)c)
return c
turn c
(1)
(2)
(3)
(4)
(5)
(6)
调用是程序编写的一个专有名词,它指的是运行函数代码的方式。比如我们上面定义的函数add,返回一个result,程序碰到代码并不会执行去,如果要执行它,程序需要使用函数的使用方式。所谓调用就是用函数的名,给定一个具体的参数值。调用时给定的具体参数是运行函数的输入。要用实际的参数替换定义时的占位参数,也称为形参,函数调用后,我们会得到实际参数的运行结果。下面我们看下具体调用过程。
$$