Search code examples
pythonif-statementfactorial

Function returning None for recursive function for factorial function


I'm trying to write a code that returns the factorial of the input num but this code is returning "None" when I run it, I'm not sure why.

def factorial(num):
    if type(num) is not int():
        return None
    elif num == 0:
        return 1
    elif num < 0:
        return None
    else:
        return num * factorial(num - 1)

factorial5 = factorial(5)
print(factorial5)

Solution

  • You have an extra parenthesis .. see the correction from int() to int:

    def factorial(num):
        if type(num) is not int:
            return None
        elif num == 0:
            return 1
        elif num < 0:
            return None
        else:
            return num * factorial(num - 1)
    
    factorial5 = factorial(5)
    print(factorial5)
    

    NOTE: ran with Python3

    120