
2.5 函数
在Python中,将用于实现某种特定功能的若干条语句组合在一起,称为函数。本节将简要介绍Python中的函数定义及使用方法。
2.5.1 函数的定义与调用
1.函数定义的一般形式
函数由关键字def来定义,其一般形式为:

其中,参数可以为空。当有多个参数时,参数之间用逗号“,”分隔。当函数无返回值,可以省略return语句。
【例2-15】创建一个名为Hello的函数,其作用为输出“欢迎进入Python世界”的字符内容。
创建该函数的程序段如下:

在程序中调用Hello()函数,将显示“欢迎进入Python世界”的字符内容。
【例2-16】创建一个名为sum()的函数,其作用为计算n以内的整数之和(包含n)。
下面为实现计算n以内的整数之和的函数程序段:

2.函数的调用
在Python中,直接使用函数名调用函数。如果定义的函数包含参数,则调用函数时也必须使用参数。
【例2-17】创建显示如下排列字符的函数,并编写程序调用该函数。

程序代码如下:

将程序保存为ex2_17.py。
运行程序:
python ex2_17.py
程序运行结果如下:

【例2-18】应用函数,计算1~100的和。
程序代码如下:

将程序保存为ex2_18.py。
运行程序:
python ex2_18.py
程序运行结果如下:
5050
2.5.2 局部变量与全局变量
在函数体内部定义的变量或函数参数称为局部变量,该变量只在该函数内部有效。在函数体外部定义的变量称为全局变量,全局变量在变量定义后的代码中都有效。当全局变量与局部变量同名时,则在定义局部变量的函数中,全局变量被屏蔽,只有局部变量有效。
全局变量在使用前要先用关键字global声明。
【例2-19】全局变量与局部变量同名的示例。
程序代码如下:

将程序保存为ex2_19.py。
运行程序:
python ex2_19.py
程序运行结果如下:
局部变量x = 30 全局变量x = 10
2.5.3 常用内置函数
Python内置函数是python系统内部创建的,在Python的程序中,可以随时调用这些函数,不需要另外定义。
例如,最常见的print()是内置函数,在程序中直接使用:
print("Hello World!")
而平方根函数sqrt()不是内置函数,使用该函数时需要引用math模块:
import math y = math.sqrt(25)
Python常用内置函数如表2.3所示。
表2.3 常用内置函数

【例2-20】数学运算函数示例。
程序代码如下:

将程序保存为ex2_20.py。
运行程序:
python ex2_20.py
程序运行结果如下:

2.5.4 匿名函数lambda
在Python中,可以使用匿名函数。匿名函数即没有函数名的函数。
通常,用lambda声明匿名函数。
例如,计算两个数的和,可以写成:
add = lambda x, y : x+y print(add(1,2))
输出的结果为3。
从上面示例可以看到,lambda表达式的计算结果相当于函数的返回值。
【例2-21】用lambda表达式,求三个数的和。
程序代码如下:

将程序保存为ex2_21.py。
运行程序:
python ex2_21.py
程序的运行结果如下:
60 4 8 16