函数返回 None,但打印结果

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,但由于某些原因,如果我写返回None return arr[0]。我也尝试返回整个数组,因为数组总是 1 个元素长,但这并没有改变任何东西并且仍然返回 None。


慕斯王
浏览 157回答 1
1回答

慕侠2389804

您需要返回递归调用def maximum(arr):&nbsp; &nbsp; if len(arr) == 1:&nbsp; &nbsp; &nbsp; &nbsp; return arr[0]&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; if arr[0] > arr[1]:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; del arr[1]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return maximum(arr)&nbsp; &nbsp; elif arr[0] <= arr[1]:&nbsp; &nbsp; &nbsp; &nbsp; del arr[0]&nbsp; &nbsp; &nbsp; &nbsp; return maximum(arr)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python