递归函数类型错误

时间:2016-10-17 15:51:09

标签: python python-3.x

您好我正在尝试为Pascal三角形执行递归函数来计算给定行中的特定值,下面是我的代码并且我不断收到以下错误:

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

到目前为止我的代码:

def recursive_pascal(i,j):      
   if i == 0:          
     return 1
   elif j == 1:          
     return 1
   else:
     recursive_pascal(i-1,j-1) + recursive_pascal(i-1,j)

print(recursive_pascal(3,2))

1 个答案:

答案 0 :(得分:5)

您没有从else子句返回任何内容。在Python中,如果您不从函数返回任何内容,则将返回值None。然后,您的函数将尝试添加Noneint(您从基本情况返回),这是不可能的,这也是您收到该错误的原因。你应该把它改成

return recursive_pascal(i-1,j-1) + recursive_pascal(i-1,j)