从递归函数的基本情况返回语句(Python)

Posted

技术标签:

【中文标题】从递归函数的基本情况返回语句(Python)【英文标题】:Return statement from base case of recursive function (Python) 【发布时间】:2015-03-26 12:33:43 【问题描述】:

我正在尝试使用 Python 2.7 的合并排序算法更好地理解递归。我编写了一小段代码来递归分解列表。除了最后一步,代码似乎工作正常。对于基本情况,程序应该返回一个大小为 1 的列表。但是,它返回的值是“none”。我哪里错了?

mylist = [14,88,2,14,9,123,1,5]
def concour(thelist):
    mid = len(thelist) / 2
    LeftSide = thelist[:mid]
    print LeftSide,'length is ', len(LeftSide)
    if len(LeftSide) == 1:          #the base case here
        print LeftSide        
        return LeftSide
    else:
        concour(LeftSide)    #recursive call

print concour(mylist)



"""
[14, 88, 2, 14] length is  4
[14, 88] length is  2
[14] length is  1
[14]
None
"""

【问题讨论】:

请在下面接受这个答案。如果可能的话,你可以在线程的末尾包含“正在返回无” 【参考方案1】:

您在递归调用中缺少您的 return 语句。

【讨论】:

以上是关于从递归函数的基本情况返回语句(Python)的主要内容,如果未能解决你的问题,请参考以下文章

递归的小栗子

python学习第十四天

python基础:递归函数返回值(return)误区

python 复习 4-1 函数参数返回值递归

python-15

函数,递归函数,返回值作用域,插入排序