def factorial(number): """ Calculates the factorial of a number using recursion. """ assert int(number) == number, "Factorial of decimals not possibe" if number < 0: raise ValueError("Factorial of a negative number not possible") if number in (0, 1): return 1 else: return number * factorial(number - 1) # Driver Code if __name__ == "__main__": print(factorial(5))