python-2.7 - 当您调用具有不同参数的函数时会发生什么
问题描述
我正在练习一项我从未理解过的旧作业。我理解并得到正确的输出,直到'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
解决方案
推荐阅读
- android - Google PlayStore 应用程序 - 创建一个 APP 以在插入电源时启动
- python - 从代码开始循环,直到用户说在 Python 中停止
- python - Python 如何使用 \x 将字符串连接到字节
- rust - 结果的 Rust 类型推断
- visual-studio-2015 - 在 Visual Studio 中签入 Code Reviewed 文件的最简单方法是什么?
- python - 在内联 if/else 语句中分配多个值
- python - Python-如何从包含特定单词的列表中删除元素
- python - 使用 python 进行动态编程的优化帕斯卡三角形
- bash - 在 Yaml 中解析 Bash 数组
- firedac - 新的firedac,基本的第一个程序问题