递归函数类型错误

Dan*_*sch 0 python python-3.x

嗨我想尝试为Pascal三角形做一个递归函数来计算给定行中的特定值,下面是我的代码,我不断收到以下错误:

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

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))
Run Code Online (Sandbox Code Playgroud)

Eri*_*ard 5

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

return recursive_pascal(i-1,j-1) + recursive_pascal(i-1,j)
Run Code Online (Sandbox Code Playgroud)

  • 没问题,请确保接受答案,如果它对您有用. (2认同)