我得到:在阶乘程序为什么我得到这个错误?我不明白什么是typerror
TypeError: unsupported operand type (s) for *: 'int' and 'NoneType
错误。任何人都可以请帮我..
def factorial(n):
if n == 0:
return 1
if n > 1:
return n*factorial(n -1)
print(factorial (5))
我得到:在阶乘程序为什么我得到这个错误?我不明白什么是typerror
TypeError: unsupported operand type (s) for *: 'int' and 'NoneType
错误。任何人都可以请帮我..
def factorial(n):
if n == 0:
return 1
if n > 1:
return n*factorial(n -1)
print(factorial (5))
当你在factorial(2)
处开始时会发生什么,函数返回的是什么n n == 1
?
如果没有返回语句命中,则该函数隐式返回None
。
是的..这就是原因......非常感谢。 –
变化n > 1
到n >= 1
因为在递归有n个无一例= 1
谢谢...这有助于.. –
你似乎没有得到很好的处理这里的条件:时会发生什么'n ==可1'?尝试:'factorial = lambda n:1 if n == 0 else n * factorial(n-1)'。 – Abdou