Python是一種強大的編程語言,它支持遞歸函數。遞歸函數是指一個函數調用自身,以實現解決問題的過程。
def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) print(factorial(5)) # 輸出120
以上代碼是一個求階乘的遞歸函數。在遞歸函數中,我們設定了一個基本條件,即如果n為0,則返回1。否則,遞歸調用函數本身,并將n-1作為參數傳遞,直到n等于0時,遞歸停止。
遞歸函數可以讓我們更容易地解決問題,并使代碼更加優雅和簡潔。
def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) print(fibonacci(5)) # 輸出5
以上代碼是一個求斐波那契數列的遞歸函數。在這個遞歸函數中,我們設定了兩個基本條件,即如果n為0,則返回0;如果n為1,則返回1。否則,遞歸調用函數本身,并將n-1和n-2作為參數傳遞,直到n等于0或1時,遞歸停止。
遞歸函數是編程中的重要工具,但要注意不要陷入遞歸陷阱。這種情況發生在遞歸函數沒有正確設置基本條件或遞歸過程過于復雜時,導致代碼無限遞歸,最終導致堆棧溢出。