科普菌 发表于 2019-10-13 02:18:21

求助递归

为什么这样不行

科普菌 发表于 2019-10-13 02:19:37

为什么思路相同,这题就可以

科普菌 发表于 2019-10-13 02:20:08

#递归
第一个例子正确,同样的思路第二个例子就错误。“+”左右两边数据类型相同,Dec2Bin(n//2)被看作字符串。为什么get_digits(num//)就是"NoneType"。

jackz007 发表于 2019-10-13 11:43:24

本帖最后由 jackz007 于 2019-10-13 11:49 编辑

      get_digits(n // 10) . append(n % 10)这个表达式没有返回值,所以,其类型是NoneType,不能直接 return,拆开成两句来写就可以了。
def get_digits(n):
    result = []
    if n:
      result = get_digits(n // 10)
      result . append(n % 10)

    return result

print get_digits(12345)

zltzlt 发表于 2019-10-13 11:50:30

应该这样改:

def get_digits(num):
        if num >= 10:
                l = get_digits(num // 10)
                l.append(num % 10)
                return l
        else:
                return

科普菌 发表于 2019-10-13 18:47:03

jackz007 发表于 2019-10-13 11:43
get_digits(n // 10) . append(n % 10)这个表达式没有返回值,所以,其类型是NoneType,不能直 ...

嗯嗯,明白了
页: [1]
查看完整版本: 求助递归