Recursive Functions in Python
In Python, a recursive function is a function that calls itself to solve a problem. A recursive function usually solves a large problem by breaking it down into smaller, more manageable problems that can be solved identically.
A recursive function always has to have some base condition that stops the recursion, otherwise, the function will call itself indefinitely.
Example: Factorial Function
The factorial of a number n
(written as n!
) is the product of all positive integers less than or equal to n
. Here’s how we can calculate a factorial using a recursive function in Python:
def factorial(n): # base condition if n == 0 or n == 1: return 1 else: # recursive call return n * factorial(n - 1) print(factorial(5)) # Output: 120
Example: Fibonacci Function
The Fibonacci sequence is where each number is the sum of the two preceding ones, usually starting with 0 and 1. Here’s how we can generate the Fibonacci sequence using a recursive function in Python:
def fibonacci(n): # base conditions if n == 0: return 0 elif n == 1: return 1 else: # recursive call return fibonacci(n-1) + fibonacci(n-2) print(fibonacci(10)) # Output: 55
Please note that while recursion can be an elegant solution for certain problems, it can also be inefficient for large inputs because of repeated computations and can lead to a stack overflow for very deep recursions. For such situations, other methods like iteration or dynamic programming might be more appropriate.