gpt4 book ai didi

python - python中函数的返回值

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:58 25 4
gpt4 key购买 nike

为什么我必须在 else 情况下返回函数?我不能只应用定义的函数,因为我只需要返回 b 的值并存储它吗?

def gcd_a(a,b):

if a==0:
return b
else:
gcd_a(b%a,a)

最佳答案

我认为您缺少的主要概念是,为了获得递归函数(或与此相关的任何函数)的结果,您访问其结果的函数必须返回值*

现在,当您调用 gcd_a 时,对 gcd_a 的递归调用将最终返回一个值,但是它会丢失,因为您正在访问其结果的函数不返回值。

为了向您展示这是真的,让我们添加一个在函数返回时打印的日志语句:

def gcd_a(a,b):
if a==0:
print('finally returning!', b)
return b
else:
gcd_a(b%a,a)

现在如果我们调用:

print(gcd_a(10, 99))

我们得到以下输出:

finally returning! 1
None

在某处,对 gcd_a 的递归调用发现您的条件为 True,并返回 1,但是,此结果未打印,因为您调用 gcd_a

时不会返回它

* 除非你做了一些奇怪的事情,比如更新全局变量等......

关于python - python中函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com