函数和代码的复用

函数的定义

微实例:生日歌。

过生日时要为朋友唱生日歌,歌词为: Happy birthday to you!

Happy birthday to you! Happy birthday, dear

Happy birthday to you!

编写程序为Mike和Lily输出生日歌。最简单的实现方法是重 复使用print()语句

函数的基本使用

函数的定义

函数是一段具有特定功能的、可重用的语句组,用函数名来

表示并通过函数名进行完成功能调用。

函数也可以看作是一段具有名字的子程序,可以在需要的地 方调用执行,不需要在每个执行地方重复编写这些语句。

每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应的处理结果。

函数是一种功能抽象

函数的定义

Python定义一个函数使用def保留字,语法形式如下: def ():

'''注释'''

return

函数的定义


print("Happy birthday to you!") print("Happy birthday to you!") print("Happy birthday, dear Mike!") print("Happy birthday to you!")

最简单的实现方法是重复使用print()语句,如下:

函数的定义

微实例5.1

m5.1HappyBirthday.py
def happy():
print("Happy birthday to you!") def happyB(name):
happy() happy()
print("Happy birthday, dear {}!".format(name))
happy() happyB("Mike") print() happyB("Lily")
>>>
Happy birthday to you! Happy birthday to you!
Happy birthday, dear Mike! Happy birthday to you!
Happy birthday to you! Happy birthday to you! Happy birthday, dear Lily! Happy birthday to you!

函数调用的过程

程序调用一个函数需要执行以下四个步骤:

(1)调用程序在调用处暂停执行;

(2)在调用时将实参复制给函数的形参;

(3)执行函数体语句;

(4)函数调用结束给出返回值,程序回到调用前的暂 停处继续执行。

函数调用的过程

微实例5.1中happyB()的被调用过程

函数调用的过程

函数调用的过程

lambda函数

Python的有33个保留字,其中一个是lambda,该保留字用于定义 一种特殊的函数——匿名函数,又称lambda函数。

匿名函数并非没有名字,而是将函数名作为函数结果返回,如下:

= lambda :

lambda函数与正常函数一样,等价于下面形式: def ():

return

lambda函数

简单说,lambda函数用于定义简单的、能够在一行内表示的函数,实例如下。

>>>f = lambda x, y : x + y
>>>type(f)
>>>f(10, 12)

22

函数的参数传递

可选参数和可变数量参数

在定义函数时,有些参数可以存在默认值。

默认值参数必须出现在函数参数列表的最右端,且任何一个默认值参数右边不能有非默认值参数。

可选参数和可变数量参数

在函数定义时,可以设计可变数量参数,通过参数前增加 星号(*)实现

>>>def vfunc(a, *b):
print(type(b)) for n in b:
a += n return a
>>>vfunc(1,2,3,4,5)

15

参数的位置和名称传递

Python提供了按照形参名称输入实参的方式,调用如下: result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)

由于调用函数时指定了参数名称,所以参数之间的顺序可 以任意调整。

变量的返回值

return语句用来退出函数并将程序返回到函数被调用的位 置继续执行。

return语句同时可以将0个、1个或多个函数运算完的结果 返回给函数被调用处的变量,例如。

>>>def func(a, b):
return a*b
>>>