我对如何在递归函数中识别形式和实际参数感到困惑。例如,在这段代码中获取数字的阶乘:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
“factorial(n-1)”是形式参数,因为它在函数本身内部吗?或者它是实际参数,因为它为函数分配了一个值。另外,“factorial(n)”也是形式参数吗?
答案 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