![Python程序设计案例教程:从入门到机器学习(微课版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/597/26793597/b_26793597.jpg)
2.5 函数
在Python中,将用于实现某种特定功能的若干条语句组合在一起,称为函数。本节将简要介绍Python中的函数定义及使用方法。
2.5.1 函数的定义与调用
1.函数定义的一般形式
函数由关键字def来定义,其一般形式为:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P42_14672.jpg?sign=1739278559-7SerhpAvjDiA0MgcHjbaebffjjuRPwC9-0-7a566044e6bb0487255231185d78dc35)
其中,参数可以为空。当有多个参数时,参数之间用逗号“,”分隔。当函数无返回值,可以省略return语句。
【例2-15】创建一个名为Hello的函数,其作用为输出“欢迎进入Python世界”的字符内容。
创建该函数的程序段如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P42_14675.jpg?sign=1739278559-dBq74P4KelwDQyv6Betdj1WByKUT4gmh-0-360c49766aad5c2d9c1c2b8373336d0e)
在程序中调用Hello()函数,将显示“欢迎进入Python世界”的字符内容。
【例2-16】创建一个名为sum()的函数,其作用为计算n以内的整数之和(包含n)。
下面为实现计算n以内的整数之和的函数程序段:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P42_14677.jpg?sign=1739278559-8p2TliHSgwrubt7Ev0nzAKyxmCaIJzvI-0-b0ada9b9c3cd58c6484d7c68a7f948e1)
2.函数的调用
在Python中,直接使用函数名调用函数。如果定义的函数包含参数,则调用函数时也必须使用参数。
【例2-17】创建显示如下排列字符的函数,并编写程序调用该函数。
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P42_14679.jpg?sign=1739278559-o0gMiDGQAw8OBRGgqQPmzqPN8VvOKw66-0-39c59580bdd739176258a4e6aa9bfefa)
程序代码如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P43_14684.jpg?sign=1739278559-2dGyLl36tPhtC2Yb4HXDdEoOUDt3rYX1-0-a3898c43a3ff3796db697ced56c23b6f)
将程序保存为ex2_17.py。
运行程序:
python ex2_17.py
程序运行结果如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P43_14688.jpg?sign=1739278559-8lPbvCLrSo16BHqD8xpTfWf2PRxhAfCj-0-9748159da3f21915aa7172a460015d27)
【例2-18】应用函数,计算1~100的和。
程序代码如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P43_14690.jpg?sign=1739278559-uubpkCrVMnIvisVWsFh50nV8mRjmTNc3-0-d1e3f0d86f261dc85e42f7e15406fffa)
将程序保存为ex2_18.py。
运行程序:
python ex2_18.py
程序运行结果如下:
5050
2.5.2 局部变量与全局变量
在函数体内部定义的变量或函数参数称为局部变量,该变量只在该函数内部有效。在函数体外部定义的变量称为全局变量,全局变量在变量定义后的代码中都有效。当全局变量与局部变量同名时,则在定义局部变量的函数中,全局变量被屏蔽,只有局部变量有效。
全局变量在使用前要先用关键字global声明。
【例2-19】全局变量与局部变量同名的示例。
程序代码如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P44_14699.jpg?sign=1739278559-sGWRc7G7SxRNybKH3AID0YN7934lW2G7-0-e6f28d8e458b1b1afc2758b9fb926078)
将程序保存为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 常用内置函数
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-T44_14707.jpg?sign=1739278559-jWxV3rXlqqnTXhCfBNIhCIeohLmUSC7j-0-51eab4b72c88d2c6be3aa70a9c95ae9a)
【例2-20】数学运算函数示例。
程序代码如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P45_14710.jpg?sign=1739278559-KLbvOawK9PotHLZ8ucBH62Dw4xEVkf5K-0-09588bd3b6cc55ca43419eec5ba637a6)
将程序保存为ex2_20.py。
运行程序:
python ex2_20.py
程序运行结果如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P46_16199.jpg?sign=1739278559-oJZZXHpoRgVSKm05oGZ1Sw97QKjRDlAP-0-82f4907b90fbbae4670ea3a358362fd2)
2.5.4 匿名函数lambda
在Python中,可以使用匿名函数。匿名函数即没有函数名的函数。
通常,用lambda声明匿名函数。
例如,计算两个数的和,可以写成:
add = lambda x, y : x+y print(add(1,2))
输出的结果为3。
从上面示例可以看到,lambda表达式的计算结果相当于函数的返回值。
【例2-21】用lambda表达式,求三个数的和。
程序代码如下:
![](https://epubservercos.yuewen.com/0F5810/15253385904109206/epubprivate/OEBPS/Images/Figure-P46_16201.jpg?sign=1739278559-9bqxg1kfTZTfvD9fRBcWitCtraiPLesW-0-b1300ea07106a7cfe3917e37e6986164)
将程序保存为ex2_21.py。
运行程序:
python ex2_21.py
程序的运行结果如下:
60 4 8 16