函数返回无,但打印结果

时间:2019-01-16 20:52:51

标签: python

def maximum(arr):
    if len(arr) == 1:
        return arr[0]
    else:
        if arr[0] > arr[1]:
            del arr[1]
            maximum(arr)
        elif arr[0] <= arr[1]:
            del arr[0]
            maximum(arr)


print(maximum([2, 2]))

如果我将return arr[0]更改为print(arr[0]),它将打印出2,但由于某种原因,如果我写return arr[0],它将返回None。我还尝试返回整个数组,因为该数组始终为1个元素,但这并没有改变,仍然返回None。

1 个答案:

答案 0 :(得分:2)

您需要返回您的递归调用

def maximum(arr):
    if len(arr) == 1:
        return arr[0]
    else:
        if arr[0] > arr[1]:
            del arr[1]
            return maximum(arr)
    elif arr[0] <= arr[1]:
        del arr[0]
        return maximum(arr)