Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新已记忆的全局变量_Python_Fibonacci - Fatal编程技术网

Python 更新已记忆的全局变量

Python 更新已记忆的全局变量,python,fibonacci,Python,Fibonacci,在这里,我试图访问从主提示符声明为全局的res,但当我说print res时,它只显示旧字典,即使在调用fib函数后也没有显示任何更新的值。我在windows cmd上运行此命令,当我说old dictionary时,我指的是以0和1作为键的res。如果要在函数中为其赋值,只需将变量声明为global。修改它(通过订阅它)非常好。这对我来说很好(打印的最后一行是{0:0,1:1,2:1,3:2,4:3,5:5,6:8,7:13,8:21,9:34,10:55})。您得到了什么输出?正如@ecat

在这里,我试图访问从主提示符声明为全局的res,但当我说print res时,它只显示旧字典,即使在调用fib函数后也没有显示任何更新的值。我在windows cmd上运行此命令,当我说old dictionary时,我指的是以0和1作为键的res。

如果要在函数中为其赋值,只需将变量声明为
global
。修改它(通过订阅它)非常好。这对我来说很好(打印的最后一行是
{0:0,1:1,2:1,3:2,4:3,5:5,6:8,7:13,8:21,9:34,10:55}
)。您得到了什么输出?正如@ecatmur所说,您不需要
global res
语句,它可以被删除(在函数外部使用
global
是没有意义的)。我可以确认它对我的效果也和预期的一样。
global res

res = dict()

res[0] = 0

res[1] =1


def fib(n):

    if n in res:
        return res[n]
    else: value = fib(n-1) + fib (n-2) 
    res[n] = value
    print res
    return value


if __name__ == '__main__':

    print fib(10)