- Python Program Examples
- Python Program Examples
- Python Print Hello World
- Python Get Input from User
- Python Add Two Numbers
- Python Check Even or Odd
- Python Check Prime or Not
- Python Check Alphabet or Not
- Python Check Vowel or Not
- Python Check Leap Year or Not
- Python Check Reverse equal Original
- Python Check Positive Negative Zero
- Python Add Subtract Multiply Divide
- Python Make Simple Calculator
- Python Add Digits of Number
- Python Find Sum of Natural Numbers
- Python Find Average Percentage
- Python Find Average of n Numbers
- Python Find Grade of Student
- Python Print Multiplication Table
- Python Find Square Root of Number
- Python Print Prime Numbers
- Python Solve Quadratic Equation
- Find Numbers Divisible by Number
- Python Find Factors of Number
- Python Find Reverse of Number
- Python Swap Two Numbers
- Python Swap Two Variables
- Python Find Largest of Two Number
- Python Find Largest of Three Number
- Python Find Factorial of a Number
- Python Find HCF & LCM
- Python Find Area of Square
- Python Find Area of Rectangle
- Python Find Area of Triangle
- Python Find Area of Circle
- Python Find Perimeter of Square
- Python Find Perimeter of Rectangle
- Python Find Perimeter of Triangle
- Python Find Circumference of Circle
- Python Print ASCII Values
- Python Print Fibonacci Series
- Python Display Powers of 2
- Python Generate Armstrong Numbers
- Python Check Armstrong or Not
- Python Check Palindrome or Not
- Python Find nCr & nPr
- Python Kilometres to Miles
- Python Fahrenheit to Celsius
- Python Celsius to Fahrenheit
- Python Decimal to Binary
- Python Decimal to Octal
- Python Decimal to Hexadecimal
- Python Binary to Decimal
- Python Binary to Octal
- Python Binary to Hexadecimal
- Python Octal to Decimal
- Python Octal to Binary
- Python Octal to Hexadecimal
- Python Hexadecimal to Decimal
- Python Hexadecimal to Binary
- Python Hexadecimal to Octal
- Python Display Calendar
- Python Print Pattern Programs
- Python Print Floyd Triangle
- Python 1D Array Program
- Python Add Two Matrices
- Python Subtract Two Matrices
- Python Transpose Matrix
- Python Multiply Matrices
- Python Print String
- Python Find Length of String
- Python Compare Two Strings
- Python Copy String
- Python Concatenate String
- Python Reverse a String
- Python Remove Vowels from String
- Remove Punctuations from String
- Python Remove Word in String
- Python Count Character in String
- Python Count Each Vowels
- Python Count Word in Sentence
- Python Remove Spaces from String
- Python Sort String in Alphabetical
- Python Uppercase to Lowercase
- Python Lowercase to Uppercase
- Python Different Set of Operations
- Python Swap Two Strings
- Python Generate Random Numbers
- Python Read a File
- Python Write to File
- Python Copy Files
- Python Merge Two Files
- Python List Files in Directory
- Python Delete Files
- Python Print Date and Time
- Python Get IP Address
- Python Shutdown/Restart PC
- Python More Programs
- Python Sum of n Numbers
- Python Check Anagram Strings
- Python Add Binary Numbers
- Python Append Text to File
- Python Insert Element in List
- Python Delete Element from List
- Python Binary Search
- Python Bubble Sort
- Python Simple Interest
- Python Capitalize Character
- Python Capitalize Word in String
- Python Capitalize Word in File
- Python Check Perfect Number
- Python Days into Years, Weeks
- Python Counts Characters in File
- Python Count Digits in Number
- Python Count Even/Odd in List
- Python Positive/Negative in List
- Python Count Repeated Characters
- Python Count Words in File
- Python Tutorial
- Python Tutorial
- Give Online Test
- All Test List
- Python Online Test

In this article, I've created some programs in Python, that find and prints factorial of a given number by user at run-time. Here are the list of approaches used:

- Find Factorial of a Number using
**while**Loop - Using
**for**Loop - Using user-defined Function
- Using Recursion
- Using Class

Before creating these programs, let's remind about factorial formula, that is:

n! = (n)*(n-1)*(n-2)*...*3*2*1

Here **n** indicates a number of which, the factorial is going to find. The **!** (exclamation) indicates
factorial. So **n!** can be called as **n factorial**. For example, **5!** can be calculated as:

5! = 5*4*3*2*1 = 120

To find factorial of any number in Python, you have to ask from user to enter the number, then find and print its factorial as per the formula given above, like shown in the program given below.

The question is, **write a Python program to find factorial of a given number using while loop**. Here is its
answer:

# ----codescracker.com---- print("Enter the Number: ") num = int(input()) fact = 1 i = 1 while i<=num: fact = fact*i i = i+1 print("\nFactorial =", fact)

Here is the initial output produced by this Python program:

Now supply the input say **5** as number and press `ENTER`

key to find its factorial like shown in the
snapshot given below:

The dry run of above program with user input **5** goes like:

- Initial values,
**num=5**(entered by user),**fact=1**,**i=1** - Now the execution of
**while**loop begins - That is, the condition
**i<=num**or**1<=5**evaluates to be true, therefore program flow goes inside the loop (inside its body) - Inside the loop,
**fact*i**or**1*1**or**1**gets initialized to**fact**. And the value of**i**gets incremented by 1. So**i=2** - Again the condition
**i<=num**or**2<=5**evaluates to be true, therefore again**fact*i**or**1*2**or**2**gets initialized to**fact**. So**fact=2** - And
**i+1**or**2+1**or**3**gets initialized to**i**. So**i=3** - Again the condition,
**i<=num**or**3<=5**evaluates to be true, therefore program flow again goes inside the loop and executes its two statements. This process continues until the condition evaluates to be false - In this way, after exiting from the loop, the variable
**fact**holds the factorial value of a number stored in**num**variable - So just print the value of
**fact**as factorial of a given number

This program does the same job as of previous program, but using **for** loop, instead of **while**. The
**try-except** is used in this program to handle with invalid inputs entered by user. And **end** is used to
skip inserting an automatic newline.

# ----codescracker.com---- print("Enter a Number: ", end="") try: num = int(input()) fact = 1 for i in range(1, num+1): fact = fact*i print("\nFactorial of", num, "=", fact) except ValueError: print("\nInvalid Input!")

Here is its sample run with same user input as of previous program:

In above program, the following code:

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

is applied to execute the following statement:

fact = fact*i

**num** number of times with value of **i** from 1 to **num**'s value.

This program is created using a user-defined function named **findFact()**. This function receives a value as its
argument, then find and returns its factorial.

# ----codescracker.com---- def findFact(n): f = 1 for i in range(1, n+1): f = f*i return f print("Enter a Number: ", end="") try: num = int(input()) fact = findFact(num) print("\nFactorial of", num, "=", fact) except ValueError: print("\nInvalid Input!")

This program produces same output as of previous program:

The following program is created using a recursive function named **findFact()**. This function calls itself until
the value of its argument becomes equal to **1**.

# ----codescracker.com---- def findFact(n): if n==1: return n else: return n*findFact(n-1) print("Enter a Number: ", end="") try: num = int(input()) fact = findFact(num) print("\nFactorial of", num, "=", fact) except ValueError: print("\nInvalid Input!")

This is the last program to find and print factorial of a number entered by user, created using a class named
**CodesCracker**. An object **ob** is created of this class to access its member function (findFact()) using
**dot (.)** operator:

# ----codescracker.com---- class CodesCracker: def findFact(self, n): f = 1 for i in range(1, n + 1): f = f * i return f print("Enter a Number: ", end="") num = int(input()) ob = CodesCracker() print("\nFactorial of", num, "=", ob.findFact(num))