【问题标题】:Formal and actual parameters in a function in pythonpython中函数的形参和实参
【发布时间】:2017-12-17 07:56:17
【问题描述】:
我对如何识别递归函数中的形式参数和实际参数有点困惑。例如在这段代码中获取一个数字的阶乘:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
“阶乘(n-1)”是形式参数,因为它在函数本身内部吗?或者它是实际参数,因为它为函数分配了一个值。另外,“阶乘(n)”也是形式参数吗?
【问题讨论】:
标签:
python
function
recursion
iteration
branch
【解决方案1】:
当一个函数被定义时,它可能有一些参数。这些参数对于从函数外部接收值很有用。它们被称为“形式论证”。当我们调用函数时,我们应该将数据或值传递给函数。这些值称为“实际参数”。
在以下代码中,“a”和“b”是形式参数,“x”和“y”是实际参数。
def sum(a, b): #a, b are formal arguments
c = a+b
print(c)
#call the function
x = 10; y = 15
sum(x, y) #x, y are actual arguments
【解决方案2】:
在 Python 中,您定义了一个 function,如下所示:
在您提供的代码中。函数factorial 采用参数 n。因此,例如,当我调用函数 factorial(1+2+3) 时,表达式 1+2+3 被解释为 6 并作为 函数参数 传入以适应 参数 n .
因此,在您调用factorial(n+1) 的函数factorial 中,您将n+1 生成的任何值传递给factorial 作为参数n
【解决方案3】:
形参,即参数,在函数定义中。 函数调用中的实参,即实参。
所以n在这里:
def factorial(n):
是形式参数。
还有n - 1(或者更确切地说,它评估为的值):
return n * factorial(n-1)
是“实参”,即参数。
【解决方案4】:
factorial(n) 定义中的n 是形式参数,因为它是定义函数的参数。 factorial(n-1) 调用中的 n-1 是一个实际参数,因为它是调用函数的参数。
【解决方案5】:
形参是名称,您用来指代函数的实际参数(也称为实参)。在您对factorial 的定义中,n 是形式参数。在对factorial 的调用 中,表达式n - 1 的值 用作递归调用内部绑定到(再次)形式参数@ 的实参987654325@.