python中函数中的形式和实际参数

时间:2017-07-12 18:39:11

标签: python function recursion iteration branch

我对如何在递归函数中识别形式和实际参数感到困惑。例如,在这段代码中获取数字的阶乘:

def factorial(n):
    if n == 1:
       return 1
    else:
       return n * factorial(n-1)

“factorial(n-1)”是形式参数,因为它在函数本身内部吗?或者它是实际参数,因为它为函数分配了一个值。另外,“factorial(n)”也是形式参数吗?

5 个答案:

答案 0 :(得分:6)

形式参数,即参数,位于函数定义中。实际参数,即参数,在函数调用中。

所以n在这里:

def factorial(n):

是一个形式参数。

此处n - 1(或者更确切地说,它评估为的值):

   return n * factorial(n-1)

是“实际参数”,即参数。

答案 1 :(得分:1)

形式参数是 name ,用于引用函数的实际参数(aka参数)。在factorial的定义中,n是形式参数。在调用factorial中,表达式n - 1用作递归调用内部绑定的实际参数(再次)形式参数n

答案 2 :(得分:1)

n定义中的factorial(n)是形式参数,因为它是用于定义函数的参数。 n-1调用中的factorial(n-1)是一个实际参数,因为这是调用函数的参数。

答案 3 :(得分:1)

在Python中,您定义了function如下:

  • 您使用关键字function开始def块,后跟功能名称和括号()

  • 任何输入参数或参数都应放在这些括号内。您也可以在这些括号内定义参数。

在您提供的代码中。函数factorial采用参数 n。例如,当我调用函数factorial(1+2+3)时,表达式1+2+3被解释并变为6并作为函数参数传入以适合参数< / em> n

因此,在您调用factorial的函数factorial(n+1)中,您将n+1生成的任何值传递到factorial作为参数n

答案 4 :(得分:0)

定义函数时,它可能有一些参数。这些参数对于从函数外部接收值很有用。它们被称为“正式论证”。当我们调用函数时,我们应该将数据或值传递给函数。这些值称为“实际参数”。 在下面的代码中,'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