首页 > 解决方案 > 当您调用具有不同参数的函数时会发生什么

问题描述

我正在练习一项我从未理解过的旧作业。我理解并得到正确的输出,直到'3, 11'。之后是 a = f2(b, c)。我不明白的是,f2 通常定义为 f2(c,a)。我尝试将 f2 中的所有 c 更改为 b 并将所有 a 更改为 c,但是当我进入步骤 b = f1(c)(现在是 b = f1(b),然后将 f1 中的所有 a 替换为 b 时,我在 f1 函数中使用 show(a, b) 没有得到正确的输出。输出应该是 a = 10 和 b = 6,但是由于我已经替换了所有 a,所以没有剩下 a。我有不知道我应该在 a = f2(b, c) 步骤做什么。有人可以解释进一步的步骤以达到最后 3 个正确的输出吗?

作业:(抱歉间距不好,我无法正确粘贴它,它粘贴为一整行)

a = 3
b = 4

def show (x, y):                                                                                 
    print ‘%d, %d’ % (x, y)

def f1 (a):
    global b
    a *= 2
    b += 1
    c = a + b
    show(a, b)    
    return c

def f2 (c, a):
    a += 3
    b = f1(c)
    show(c, b)
    c = a + b 
    return c


show(a, b)
c = f1(a)
show(a, c)
a = f2(b, c)
show(a, b)

What will be printed when this program is executed?

所需的输出:3、4

6、5

3、11

10、6

5、16

30, 6

标签: python-2.7functionargumentsparameter-passing

解决方案


推荐阅读