在线excel表格助力企业高效管理与数据分析的未来趋势
500
2022-05-30
2.3.5 函数
我们介绍了Python中的一些基本控制流结构,并且可以开始将它们组合成逻辑块来执行特定任务。特别地,我们可以构造出在必要时重复执行的代码片段,其结果取决于所提供的输入参数。换句话说,我们谈论的话题是函数。
Python中的函数具有以下语法:
请注意,函数定义以保留字def开头,函数内部的代码用适当的缩进表示。
该函数的输入参数是变量arg1,arg2,...,argn,你可以为其中一些参数定义默认值。定义具有默认值的参数必须放在参数列表的最后。
函数定义中的第二行为文档字符串,其目的是说明该函数的执行步骤和目的。最后,请注意函数不要求必须有返回值。
让我们定义一个函数来计算由边a和b所组成的矩形面积:
请注意,参数b的默认值为1。如果我们调用此函数只传入一个参数,该函数将知道如何处理计算并在需要时使用默认值。
定义函数后就可以通过函数名直接调用;就像使用其他Python内置函数一样。
在上面代码的第一行中,我们使用两个参数调用rect_area函数,这样就将值20赋值给参数a,并用2覆盖b的默认值。正如预期的那样,计算的面积是40。让我们尝试只提供一个值来调用函数:
这里我们只将值42.4传递给函数。在这种情况下,值将分配给参数a,并在计算中使用默认值b = 1。
我们可以在程序中包含控制流结构,以使它们更有用、更灵活。举个例子,我们实现一个简单的函数来计算数字的阶乘:
其中,“* =”和“- =”表示使用左侧值重复操作。
当我们传入一个小于或等于函数期望值的数字时,它返回值1,当数字大于1时,使用while循环计算阶乘。让我们使用这个函数:
更方便的方法可能是即时定义一个简单的函数,而不必使用完整的def结构。在这种情况下,可以使用lambda函数:
与之前一样,arg1,arg2……是输入参数,而statement是要根据输入参数执行的代码。
例如,如果我们需要计算数字列表的每个元素的立方,可以尝试以下代码:
在这种情况下,对象g是一个lambda函数,可以像调用Python中的其他函数一样对其加以调用。
到目前为止,没有什么值得奇怪的地方:我们已经用数字1、3和6初始化了一个列表,然后定义了一个lambda函数来计算参数n的立方。我们现在可以应用此功能,例如:
lambda函数看起来可能非常简单,但正如上面所示,它虽然简单,但是非常实用。可以在PySpark的源代码中看到它的身影。PySpark是用于Spark的Python API,它是一种开源集群计算框架。
python 机器学习 Python
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。