TypeError:*:' NoneType'不支持的操作数类型和' int'

时间:2016-04-30 22:38:33

标签: python python-3.x recursion typeerror nonetype

我在下面的代码中找不到我的错误。如果我说"返回"而不是" print"在else部分,代码不能执行else部分,它只在部分中进行计算。我怎样才能解决这个问题?

def calculatePerimeter(length, depth):
    if depth == 1:
        return 3 * length
    else:
        print (calculatePerimeter(length, depth-1) * (4/3)**(depth)) / ((4/3)**(depth-1))

calculatePerimeter(100, 3)

1 个答案:

答案 0 :(得分:1)

你需要返回else子句中的值,否则没有什么可以相乘(除了在递归中进行最后一次调用时)。然后你需要在调用函数时调用print

def calculatePerimeter(length, depth):
    if depth == 1:
        return 3 * length
    else:
        return (calculatePerimeter(length, depth-1) * (4/3)**(depth)) / ((4/3)**(depth-1))

print(calculatePerimeter(100, 3))