首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

关于递归的有关问题,真心!

2012-12-31 
关于递归的问题,,真心求助!!!本帖最后由 fibbery 于 2012-11-26 14:09:40 编辑def mysum(l):l[1,2,3,4,5]

关于递归的问题,,真心求助!!!
本帖最后由 fibbery 于 2012-11-26 14:09:40 编辑

def mysum(l):
    l=[1,2,3,4,5]
    if not l:
       return 0
    else:
       return l[0]+mysum(l[1:])
mysum()
最后一句return l[0]+mysum(l[1:]),,这个是怎么加的,,,能理解是怎么再次使用该函数的,,就是无法理解他最后 是怎么加到一起的!!!!!麻烦各位大神解释通俗一些。。。。。谢啦!!!
[解决办法]

def mysum(l):
     if not l:
         return 0
     else:
         return l[0]+mysum(l[1:])
l=[1,2,3,4,5]
mysum(l)

肯定是这样的...
mysum功能是计算一个列表的元素和,你可以想象成一个列表的和就等于这个列表的首元素加上这个列表剩下的
元素的和,空列表为0,很简单的递归,你自己稍微跟踪分析下就明白了。
[解决办法]
引用:
def mysum(l):
    l=[1,2,3,4,5]
    if not l:
       return 0
    else:
       return l[0]+mysum(l[1:])
mysum()
最后一句return l[0]+mysum(l[1:]),,这个是怎么加的,,,能理解是怎么再次使用该函数的,,就是无法理解他最后 是怎……


你这代码根本不可能运行,给你改改

def mysum(l):
    if not l:
       return 0
    else:
       return l[0]+mysum(l[1:])
print(mysum([1,2,3,4,5]))

如果lz学过中学数学里的归纳证明法,这段代码应该不难的。

热点排行