圆柱体积函数
我们以前使用过几种 Python 内置函数。现在,我们可以尝试自己编写函数。
我们将编写一个计算圆柱体积的函数:圆柱的高乘以其半径的平方,再乘以 pi。
这是一个计算圆柱体积的函数定义:
def cylinder_volume(height, radius):
pi = 3.14159
return height * pi * radius ** 2
定义了 cylinder_volume
函数后,可以按如下方法使用该函数:
>>> cylinder_volume(10, 3)
282.7431
我们来仔细了解一下这个函数的定义:
分析函数定义

函数头
(1) def 关键字表示以下代码即函数定义。
(2) def 后跟的是函数的名称,在这个例子中是 cylinder_volume。函数名称应该是一个单词,中间没有空格,这是为什么在这个名称中有一个下划线。
(3) 函数定义第一行的最后一个元素是函数所需的参数(函数名的规则与变量名的规则相同)。函数的参数是调用函数时传入的值;在函数体中将使用这些参数。用逗号隔开参数,并将它们放在一对括号中。如果编写一个不带参数的函数,应使用一对空括号 ()。函数定义的第一行以冒号 : 结尾。
这是一个不带参数的函数示例:
def print_greeting():
print('Hello World!')
该函数打印出 "Hello World"。这个函数没有参数,因此我们使用一对空括号。
函数体
(4) 使用四个空格缩进函数体。函数体是函数发挥作用的载体。我们可以在函数体内引用参数变量,以及定义新的变量。在此定义的 pi 变量是一个局部变量,这意味着它只能在 cylinder_volume 函数的函数体中使用。在其他地方尝试访问该变量会导致错误。
(5) 使用 return 关键字可获取函数结果。return 之后的表达式值是函数的输出值。
(6) 在这个示例中,我们返回一个表达式(即圆柱体积的公式)的值。请注意,在表达式的其他部分之前先计算 radius ** 2,原因是在数学运算顺序中,先运算乘方,再运算乘法。(也就是说,增加一对额外括号不会有什么坏处,特别是在涉及大量数学运算的表达式中,首先计算哪个运算可能会出现混淆。返回 height * pi * (radius ** 2) 即可。)如果不用表达式返回值,替代方法是提前在函数体中计算体积,然后将其存储在名为 volume 的变量中,这将使我们可以 return volume。
练习:人口密度函数
编写一个名为 population_density 的函数,该函数有两个参数,population 和 land_area(以平方公里计),可以返回一个根据这些值计算出的人口密度。下面有两个测试案例,你可以使用这两个案例验证自己的函数是否可用。编写函数后,使用测试答案按钮测试代码。

网友评论