gpt4 book ai didi

python 挖掘和递归

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:07 24 4
gpt4 key购买 nike

我对一个小的递归代码很感兴趣。我已经打印输出并且打印效果很好,但是当我尝试放置一个计数器来实际计算我的答案时,它会给我挖取错误。

total = 0
def foo(me, t):
if t<0:
return
if t==0:
total = total+1
return
for i in range(1, me+1):
total = total+1
return foo(i, t-i)

它说在赋值之前引用局部变量,好吧,我试图在第一行引用 total ....它与全局变量无关,我也尝试过使用全局变量但徒劳无功。

这是纯粹的独家新闻问题,有什么想法吗?

最佳答案

正如其他人所提到的,您需要 global 语句来获取总计。此外,正如 Svante 所指出的,for 循环在编码时是不必要的,因为 i 始终是 1。因此,使用等效版本的代码:

total = 0
def foo(me, t):
global total
if t < 0:
return
total = total + 1
if t == 0:
return
return foo(1, t-1)

foo(99, 100)
print total

应该更容易看出 foo(99, 100) 确实是 101,因为您实际上是从 100 倒数到 0。我不确定您为什么不这么想?

关于python 挖掘和递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286626/

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