【问题标题】:Why does this recursive summation function return None? [duplicate]为什么这个递归求和函数返回 None? [复制]
【发布时间】:2012-05-10 05:06:16
【问题描述】:
def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)

在加法后插入“print sum1”表明sum1正在增加,所以我不明白为什么函数返回None。我唯一能想到的是 sum1 在返回之前以某种方式被重置为 0,但我不知道为什么会这样。

【问题讨论】:

标签: python recursion


【解决方案1】:

你需要写

def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        return recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)

【讨论】:

    【解决方案2】:
    In [52]: def rec(x, sum = None):
    if sum == None:
        sum = 0
    if x > 0:
        sum += x
        return rec(x - 1, sum)
    else:          
        return sum
    

    ....:

    In [53]: rec(100)
    Out[53]: 5050
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2021-12-23
      • 2021-11-13
      相关资源
      最近更新 更多