gpt4 book ai didi

python - 为什么这没有分配正确的值?

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:51 26 4
gpt4 key购买 nike

我想存储到目前为止计算出的最大 fib 数,但是变量 biggest 没有被正确分配。

cache = {}
biggest = 1
def fib(n):
if n == 0:
return 0
if n == 1:
return 1

if not n in cache:
cache[n] = fib(n-1) + fib(n-2)
print "calculated %ith fib giving %i" %(n, cache[n])
biggest = cache[n]

return cache[n]

在执行 fib(10) 之后,缓存看起来不错,但最大的仍然是 1。对于初学者的问题很抱歉,但希望有人能启发我。谢谢!

最佳答案

您需要使用 global statement最大的 声明为全局的(特别是当对变量进行赋值时)。否则,它被视为局部变量。

cache = {}
biggest = 1

def fib(n):
global biggest # <-----
....

关于python - 为什么这没有分配正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27715064/

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