Python factorial

The Python factorial function is one of the math functions used to find the factorial of a specified expression or a specific number. The syntax of the factorial function is shown below

math.factorial(number);
  • If the number argument is a positive integer, it returns the factorial of a given number.
  • If it is a Negative integer, Positive or Negative Decimals, it returns ValueError. And if it is not a number, it returns TypeError.

Python math factorial Function example

This math function finds the factorial of a given number. In this math example, we will find the same for different data types and display the output.

  1. First, we used the math factorial Function directly on Positive integers.
  2. Next two statements, We used it on Tuple and List items. If you observe the above Python screenshot, this Math function is working perfectly on them.
  3. Next, we tried directly on multiple values.
  4. Here, we used the factorial on the String value, and it returns TypeError: an integer is required (got type str)
  5. Next, We used on Decimal value. It returns ValueError: it only accepts integral values
  6. Last, We tried it on Negative value. It is returning ValueError: it. not defined for negative values.
import math

Tup = (1, 2, 3, 4 , 5) # Tuple Declaration
Lis = [6, 7, 8, 5 , 9] # List Declaration

print('Factoial() Function on Positive Number = %.2f' %math.factorial(3))
print('Factoial() Function on Positive Decimal = %.2f' %math.factorial(6))

print('Factoial() Function on Tuple Item = %.2f' %math.factorial(Tup[2]))
print('Factoial() Function on List Item = %.2f' %math.factorial(Lis[4]))

print('Factoial() Function on Multiple Number = %.2f' %math.factorial(10 + 45 - 48))

print('Factoial() Function on String Value = ', math.factorial('Python'))
Python factorial math function Example

Using the Python factorial function on negative numbers

As we mentioned earlier, the built-in math factorial function accepts only positive numbers. If we pass a negative number, it throws a ValueError.

import math
print(math.factorial(-2))
ValueError: factorial() not defined for negative values

Use math.factorial on a list of items

In the following example, we declared a list of five integer values. Next, we used a list comprehension (alternatively, use the map() function) to iterate over the list items. On each iteration, apply the math.factorial function to find the factorial of each list item.

import math
n = [1, 2, 3, 4, 5]
fact = [math.factorial(i) for i in n]
print(fact)
[1, 2, 6, 24, 120]

How to calculate factorial without using the math module in Python?

There are several approaches to calculating the factorial, including the for loop, while loop, or recursion. In the following example, we use the recursive function to calculate the factorial of a given number. I suggest you refer to the Factorial Program article.

def calFactorial(n):
if n < 0:
print("Factorial requires a Positive Number.")
return
if n in (0, 1):
return 1
return n * calFactorial(n - 1)

print(calFactorial(6))
720