belf 发表于 2020-3-21 21:14:31

有关递归的课后题

小甲鱼课后题:1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>


def get_digits(n):
    result = []
    if n:
      result.append(n % 10)
      get_digits(n // 10)
    else:
      print(result)


想问问我这个递归的代码为什么会出错?

fish_游鱼 发表于 2020-3-21 22:05:33

你每次调用get_digits,都会执行一次result = [],所以最后只能得到一个空列表。
def get_digits(n):
    if n:
      return get_digits(n // 10) +
    else:
      return []

belf 发表于 2020-3-22 11:12:23

fish_游鱼 发表于 2020-3-21 22:05
你每次调用get_digits,都会执行一次result = [],所以最后只能得到一个空列表。

知道了,谢谢!!
页: [1]
查看完整版本: 有关递归的课后题