我得到:在階乘程序爲什麼我得到這個錯誤?我不明白什麼是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