遞迴函式
遞迴函式是在其定義中呼叫自身的函式。例如,由 factorial(n) = n*(n-1)*(n-2)*...*3*2*1
定義的數學函式 factorial。可程式設計為
def factorial(n):
#n here should be an integer
if n == 0:
return 1
else:
return n*factorial(n-1)
這裡的輸出是:
factorial(0)
#out 1
factorial(1)
#out 1
factorial(2)
#out 2
factorial(3)
#out 6
正如所料。請注意,此函式是遞迴的,因為第二個 return factorial(n-1)
,函式在其定義中呼叫自身。
一些遞迴函式可以使用 lambda 實現,使用 lambda 的階乘函式將是這樣的:
factorial = lambda n: 1 if n == 0 else n*factorial(n-1)
該功能輸出與上述相同。