y1qcy 发表于 2020-4-24 12:57:45

函数返回值问题

def cal(number):
        result = []
        if number >= 0 and number < 10:
                return result.append(number)
        else:
                result = cal(number//10)
                return result.append(number%10)


为什么cal(1)返回值是 None 呢?
求助!

zltzlt 发表于 2020-4-24 12:59:13

因为列表大部分方法都没有返回值,它们只作用于原列表,所以不能直接 return result.append(number%10) 。

这样试试:

def cal(number):
      result = []
      if number >= 0 and number < 10:
                result.append(number)
                return result
      else:
                result = cal(number//10)
                result.append(number % 10)
                return result

wuqramy 发表于 2020-4-24 13:01:46

append是一个列表的方法 它只会对目标列表做操作
是没有返回值的(相当于None)
所以代码应该是这样的:
def cal(number):
      result = []
      if number >= 0 and number < 10:
                result.append(number)
                return result
      else:
                result = cal(number//10)
                result.append(number%10)
                return result

wuqramy 发表于 2020-4-24 13:05:56

zltzlt 发表于 2020-4-24 12:59
因为列表大部分方法都没有返回值,它们只作用于原列表,所以不能直接 return result.append(number%10) 。
...

就快那么一点点...{:10_285:}
页: [1]
查看完整版本: 函数返回值问题