递归算法如何在此片段中起作用



我发现很难解释以下代码要做什么。它是关于递归算法的。特别是:如果其他尾部头语句。

假设列表已定义并分成头和尾部组件

items=[1,10,7,4,5,9]
head,*tail=items
def sum(items):
  head,tail=items
  return head+sum(tail) if tail else head

回答您对陈述的怀疑",特别是:如果尾巴头语句"。

上述语句也可以写为

if(tail != None):
    return head+sum(tail)
else:
    return head

在第一次外观上很有意义。

希望这对您有帮助,

在上面的任何查询中回复

只要尾巴不是类型,递归就会存在。如果没有尾巴,则递归将终止并输出头部,并且会向上延伸。

这是我的快速理解。其他成员也给出了很好的答案。

最新更新