Here are three ways to find the factorial of a number in Python.

- Using
**“for loop”** - Using
**“recursion”** - Using
**“math.factorial()”**method

**Method 1: Using for loop**

You can use a **“for loop”** to iterate through number 1 till the designated number and keep multiplying at each step.

```
num = input("Enter a number: ")
factorial = 1
if int(num) >= 1:
for i in range(1, int(num)+1):
factorial = factorial * i
print("Factorial of ", num, " is : ", factorial)
```

**Output**

`Enter a number: `**4**
Factorial of 4 is : **24**

**Method 2: Using recursion**

A recursive function is a function that calls itself during its execution. This enables the function to be repeated several times, as it can call itself during its execution.

```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(4))
```

**Output**

`Factorial of 4 is: `**24**

**Method 3: Using math.factorial() method**

To **calculate** the **factorial** of a **number** in **Python,** you can use the built-in **“math.factorial()”** method.

**Syntax**

```
math.factorial(num)
```

**Parameters**

**num:** It is an integer. If we provide float or any negative number, it will throw an error.

**Return Value**

The **“factorial()”** method returns the factorial of the desired number.

**Example 1**

```
# Taking input from user
num = int(input("Enter the number to find factorial: "))
# Declaring one temporary variable to store the answer
fact = 1
# Finding factorial of the given number
for i in range(1, num+1):
fact = fact*i
print("Factorial of the given number ", num, " is: ", fact)
```

**Output**

```
Enter the number to find factorial: 5
Factorial of the given number 5 is: 120
```

**Example 2: If the given number is Negative **

```
import math
num = input("Enter a number: ")
print("The factorial of ", num, " is : ")
print(math.factorial(int(num)))
```

**Output**

ValueError: factorial() not defined for negative values

That’s it.

Ankit Lathiya is a Master of Computer Application by education and Android and Laravel Developer by profession and one of the authors of this blog. He is also expert in JavaScript and Python development.