zhouhao888
zhouhao888
2018-12-12 09:58

小新自学python遇到递归问题,有一点不明白

  • 递归
  • python

首先教程里说到递归就是函数自己调用自己,这个还能理解,然后把练习的代码放上。

def sum_numbers(num):
    if num == 1:
        return 1

    temp = sum_numbers(num - 1)

    return num + temp

result = sum_numbers(5)
print(result)
  • 如题在函数,是当数==1的时候就跑出,相当于每一次执行到 temp = sum_numbers(num - 1)的时候只要不==1就会 一直调用函数,因为if里面有return.那么最后一条return num + temp这一条。应该不再 执 行 了。但实际运行的时候还是有执行 的。

  • 当num == 1的时候到了return num + temp的时候这时候temp=1 ,num = 2

  • 但是我不明白num =2是怎么得出 的。再执行 num = 3 temp=3 有点迷糊 了

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答