【问题标题】:Function returns none instead of the sum of list函数返回无而不是列表的总和
【发布时间】:2016-10-31 19:45:02
【问题描述】:

为什么这段代码在 Python 2 中没有返回?但是,如果我用 print 语句替换 return 语句,即在函数本身中打印 sum,它会给出正确的答案。为什么呢?我知道这是一个愚蠢的问题,但我无法自己解决。

import math
n=int(raw_input().strip())
temp = [5]
arr=[]
def cal(arr):
    arr.append(int(math.floor(temp[-1]/2)))
    temp.append(arr[-1]*3)
    if len(arr)==n:
        return sum(arr)
    cal(arr)
print cal(arr)

【问题讨论】:

    标签: python


    【解决方案1】:

    你需要

    return cal(arr)
    

    否则函数只会递归调用自身并默认返回None(而不是计算结果)。

    【讨论】:

      【解决方案2】:

      函数的结尾应该是

      if len(arr)==n:
          return sum(arr)
      else:    
          return cal(arr)
      

      不应该吗?如果您的函数结束时没有返回值,您将获得 None 作为返回值。

      【讨论】:

        猜你喜欢
        • 2021-08-03
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 2022-01-15
        • 2014-03-17
        • 2015-11-14
        相关资源
        最近更新 更多