input: Write a function to understand the concept of recursion in Python by defining a recursive function to calculate the factorial of a given number. The function should take an integer as input and return the factorial of that number. Additionally, provide an example where the factorial of 5 is calculated and printed.
  assert factorial(5) == 120
  assert factorial(1) == 1
  assert factorial(3) == 6
  assert factorial(0) == 1
output: def factorial(n):
      if n == 0 or n == 1:
          return 1
      else:
          return n * factorial(n - 1)