函数介绍
函数是一个能完成某一独立功能的程序模块。使用函数既可以使程序易于阅读和管理,又可以避免代码冗余,提高程序开发效率。
先看下面的例子:
def circle_area(radius):
PI = 3.14159
area = radius * radius * PI
return area
上面的代码完成了一个计算圆的面积的函数,def是定义函数的关键字,不可缺失;circle_area是函数名,函数名属于标识符,最好做到见名知义;函数名后面小括号里的radius是参数,然后后面紧跟冒号,下面诸行都缩进(建议使用Tab键缩进4个空格的位置);最后一句用return将圆的面积返回。
def circle_area(radius):
PI = 3.14159
area = radius * radius * PI
return area
area1 = circle_area(1)
area2 = circle_area(2)
area3 = circle_area(3)
print(area1, area2, area3)
打印结果为:
3.14159 12.56636 28.27431
从上面的例子可以看到,通过三次调用函数,分别计算出了半径为1、2、3的圆的面积。如果没有函数,每一次计算圆的面积,都要重复一遍圆的面积计算公式,会显得很啰嗦。
函数定义中的参数被称作形参,即形式参数。在调用函数时,小括号里的1、2、3被称作实参,即实际参数。函数的返回值area会被赋值给等号左边的变量。
无返回值的函数
上面的例子中,直接打印函数的面积可能让人一头雾水,需要查看代码才能知道打印结果是什么。我们不妨换一种方式,舍去return语句,使函数没有返回值,代码如下:
def circle_area(radius):
PI = 3.14159
area = radius * radius * PI
print("半径为{}的圆,面积为{}。".format(radius, area))
circle_area(1)
circle_area(2)
circle_area(3)
打印结果为:
半径为1的圆,面积为3.14159。
半径为2的圆,面积为12.56636。
半径为3的圆,面积为28.27431。
上面的例子通过修改函数定义,使函数自带打印功能,方便了许多。
具有多个参数的函数
之前的两个例子中,函数只有1个参数radius,但实际上函数可以有多个参数。
def trapezoid_area(top_base, bottom_base, height):
area = (top_base + bottom_base) * height / 2
print("上底为{},下底为{},高为{}的梯形,面积为{}。".format(top_base, bottom_base, height, area))
trapezoid_area(2, 3, 4)
trapezoid_area(3, 4, 5)
打印结果为:
上底为2,下底为3,高为4的梯形,面积为10.0。
上底为3,下底为4,高为5的梯形,面积为17.5。