Python Forum

Full Version: Python Program to Find the Factorial of a Number
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
# Python program to find the factorial of a number provided by the user.

# change the value for a different result
num = 7

# To take input from the user
#num = int(input("Enter a number: "))

factorial = 1

# check if the number is negative, positive or zero
if num < 0:
   print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("The factorial of",num,"is",factorial)
Line 17, change both '1' to 'i' line 17
Use a function:
def factorial(num):
    factorial = 1

    if num < 0:
        print("Sorry, factorial does not exist for negative numbers")
    else:
        for i in range(1, num + 1):
            factorial *= i
        print("The factorial of", num, "is", factorial)
With math.factorial it's easier:
def factorial(num):
    if num < 0:
        print("Sorry, factorial does not exist for negative numbers")
    else:
        print("The factorial of", num, "is", math.factorial(num))
A function that annoys the user until he has entered an integer:
import math


def factorial():
    max_value = 2_000

    while True:
        user_input = input("Factorial of: ")

        try:
            value = int(user_input)
        except ValueError:
            print("A valid integer is required")
            continue

        if value < 0:
            print("Negative integers are not allowed")
            continue

        if value > max_value:
            print(f"Integer is bigger than {max_value}")
            continue

        break

    print(math.factorial(value))