我找不到下面这段代码中的错误。如果我在 else 部分说“return”而不是“print”,代码就不能执行 else 部分,它只会在 if 部分进行计算。我怎样才能解决这个问题?
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)
最佳答案
您需要在 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))
关于python - 类型错误:* 不支持的操作数类型: 'NoneType' 和 'int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961007/