def factorial(num): if not isinstance(num, int): raise TypeError('Only integers are accepted for factorial.') if num < 0: raise ValueError('Number must be a positive integer.', num) product = 1 for i in range(1, num+1): product *= i return product print(factorial(5)) print(factorial(0)) try: print(factorial(-1)) except Exception as exc: print(exc) print(exc.args[0]) print(exc.args) print('here') try: print(factorial('cat')) except TypeError: print('caught type error') except ValueError: print('caught value error')