【问题标题】: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,如下所示:

      • 你用关键字def开始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@.

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-07-09
              • 2013-11-12
              • 1970-01-01
              • 1970-01-01
              • 2013-02-04
              • 2014-07-18
              • 2015-07-25
              • 1970-01-01
              相关资源
              最近更新 更多