这个问题出现在我的Python考试中,我无法回答。
x = 7
y = 3
def a(x):
return b(x)
def b(y):
if y == 6:
return x - y
return a(x-1)
print(a(4))
答案是1。 但我不确定它是如何衍生出来的。
希望有人能给我一个明确的解释。提前致谢。
答案 0 :(得分:0)
调用程序是:
a(4)
b(4)
a(6)
b(6) # returns 7 - 6 = 1
答案 1 :(得分:0)
如果我们从代码中删除噪音:
def a(x):
return b(x)
功能a
只是b
的别名,我们可以完全删除a
:
x = 7
y = 3
def b(y):
if y == 6:
return x - y
return b(x - 1)
print(b(4))
让我们重命名参数以正确区分变量和函数参数:
x = 7
y = 3
def b(paramY):
if paramY == 6:
return x - paramY
return b(x - 1)
print(b(4))
或
def b(paramY):
if paramY == 6:
return 7 - paramY
return b(7 - 1)
print(b(4))
或
def b(paramY):
if paramY == 6:
return 7 - paramY
return b(6)
print(b(4))
现在,如果你注意到这个功能:
paramY
为6
,则会返回7 - paramY
,即7 - 6
,即1
。paramY
不是6
,则会返回b(6)
,也就是说,它还会返回1
。传递给b
函数的内容并不重要,它将始终返回1
。