【发布时间】:2013-06-07 17:11:45
【问题描述】:
我刚开始学习编程,所以当我想在 python 中使用递归编写数字求和代码时。我遇到了这个问题,在这里我怎样才能将 add = 0 设为静态,有人可以帮忙,因为我的 ans 是 0
def sum(n):
add = 0
if n > 0:
add = add + n
sumf (n-1)
print add
sum(10)
【问题讨论】:
-
“将
add = 0设为静态”是什么意思? -
即使在具有静态变量的语言中也无法正常工作。结果将是
sum(5)-> 15,sum(3)-> 21,应该是 6。静态变量只会在程序中初始化一次,而不是每次计算新的(非递归)总和时。跨度> -
顺便说一句,重命名 sum() 等内置函数是一个坏习惯,会导致未来的痛苦。
标签: python