为什么此函数不返回任何值而不是列表?

时间:2019-07-15 03:29:44

标签: python recursion reference return

为什么函数不返回任何内容?

我认为列表已通过引用传递。我将return添加到递归调用中,它起作用了。但是我只是想知道为什么回报确实有所作为。

注意:我正在尝试学习递归

def find_min_max(arr, i, nums):
  if i == len(arr):
    return nums

  if arr[i] < nums[0]:
    nums[0] = arr[i]
  if arr[i] > nums[1]:
    nums[1] = arr[i]

  find_min_max(arr, i+1, nums)

2 个答案:

答案 0 :(得分:6)

您错过了最后一行的return语句,如果您不返回任何内容,则python默认返回None

In

答案 1 :(得分:0)

  

我将return添加到递归调用中,它起作用了。但是我只是想知道为什么回报确实有所作为。

这与您在该位置调用过任何其他函数一样;仅当您指定返回值时才返回该值。与其他任何函数调用相比,递归调用函数没有什么特别的。使用该技术编写正确的逻辑只有一些特别的地方:)