What is Recursion?
Philemon Adaghe

Philemon Adaghe @marrmorgan

About: I am a Data scientist with a knack for transforming complex data into actionable insights. Proficient in Python, SQL, Tableau, skilled in machine learning, statistical analysis, and data visualisation

Joined:
Jun 6, 2025

What is Recursion?

Publish Date: Jun 17
0 1

What is Recursion?

Recursion is when a function calls itself to solve smaller parts of a problem — ideal for tasks that can be broken down into repetitive subproblems.

✅ Basic Recursive Structure

def function_name():

# base condition

if condition:

return something
Enter fullscreen mode Exit fullscreen mode

else:

return function_name() # recursive call
Enter fullscreen mode Exit fullscreen mode

Without a base condition, the function will keep calling itself forever — causing a RecursionError.

💡 Example 1: Factorial Using Recursion

def factorial(n):

if n == 0 or n == 1: # base case

return 1
Enter fullscreen mode Exit fullscreen mode

else:

return n * factorial(n - 1)
Enter fullscreen mode Exit fullscreen mode

print(factorial(5)) # Output: 120

Here’s how it works:

factorial(5)

→ 5 * factorial(4)

→ 5 * 4 * factorial(3)

→ 5 * 4 * 3 * factorial(2)

→ ...

→ 5 * 4 * 3 * 2 * 1 = 120

💡 Example 2: Fibonacci Series Using Recursion

def fibonacci(n):

if n == 0:

return 0
Enter fullscreen mode Exit fullscreen mode

elif n == 1:

return 1
Enter fullscreen mode Exit fullscreen mode

else:

return fibonacci(n-1) + fibonacci(n-2)
Enter fullscreen mode Exit fullscreen mode

for i in range(7):

print(fibonacci(i), end=' ') # Output: 0 1 1 2 3 5 8

🔨 Mini Project:

Factorial & Fibonacci Calculator

def factorial(n):

return 1 if n <= 1 else n * factorial(n - 1)

def fibonacci(n):

if n <= 1:

return n
Enter fullscreen mode Exit fullscreen mode

else:

return fibonacci(n - 1) + fibonacci(n - 2)
Enter fullscreen mode Exit fullscreen mode

num = int(input("Enter a number: "))

print("Factorial:", factorial(num))

print("Fibonacci:", fibonacci(num))

Comments 1 total

  • Dotallio
    DotallioJun 17, 2025

    So clear! Recursion always clicks better for me with visual examples - do you use any tools or diagrams to help see the call stack when debugging?

Add comment