factorial () in python

Python Methods and Functions

Not many people know, but Python offers a direct function that can calculate the factorial of a number without writing all the code to calculate the factorial.

A naive method to calculate the factorial

# Python code to demonstrate the naive method
# to calculate the factorial

n = 23

fact = 1

 

for i in range ( 1 , n + 1 ):

fact = fact * i

 

print ( "The factorial of 23 is:" , end = "")

print (fact)

Output:

 The factorial of 23 is: 25852016738884976640000 

Using math.factorial ()

This method is defined in the " math " python module. Since it has an internal C type implementation, it is fast.

  math.factorial (x)   Parameters:   x:  The number whose factorial has to be computed.  Return value:  Returns the factorial of desired number.  Exceptions:  Raises Value error if number is  negative or non-integral.  

# Python code to demonstrate math.factorial ()

import math

 

print ( "The factorial of 23 is:" , end = " ")

print (math.factorial ( 23 ))

Output:

 The factorial of 23 is: 25852016738884976640000 

Exceptions in mathematics. Factorial ()

  • If you give a negative number:

    # Python code to demonstrate math .factorial ()
    # Exceptions (negative number)

     

    import math

     

    print ( "The factorial of -5 is: " , end = " ")

     
    # throws an exception

    print (math.factorial ( - 5 ))  

    Output:

     The factorial of -5 is: 

    Execution error:

     Traceback (most recent call last): File "/home/f29a45b132fac802d76b5817dfaeb137.py", line 9, in print (math.factorial (-5)) ValueError : factorial () not defined for negative values ​​
  • If the given number is not an integral value:

    # Python code to demonstrate math.factorial ()
    # Exceptions (non-integers)

     

    import math

     

    print ( "The factorial of 5.6 is:" , end = "")

     
    # throws an exception

    print (math.factorial ( 5.6 ))

    Output:

     The factorial of 5.6 is: 

    Runtime error:

     Traceback (most recent call last): File "/home/3987966b8ca9cbde2904ad47dfdec124.py" , line 9, in print (math.factorial (5.6)) ValueError: factorial () only accepts integral values ​​

This article courtesy of Manjeet Singh . If you are as Python.Engineering and would like to contribute, you can also write an article using contribute.python.engineering or by posting an article contribute @ python.engineering. See my article appearing on the Python.Engineering homepage and help other geeks.

Please post comments if you find anything wrong or if you'd like to share more information on the topic discussed above.





Tutorials