python

Factorial en Python

En este post te mostraré cómo obtener el factorial de un número usando Python. Vamos a ver dos métodos: de manera iterativa con un ciclo, y de manera recursiva en donde la función se llama a sí misma.

Recuerda que el factorial de un número es el resultado de multiplicar ese número por todos los números que existen desde él hasta el 1. Por ejemplo, el factorial de 5 es 120 pues 5 * 4 * 3 * 2 * 1 es 120.

Voy a encerrar el comportamiento de este programa en funciones para su fácil reutilización. De hecho el método con recursión no puede estar en otro lugar más que en una función.

Desarrollo del algoritmo

Para el método con un ciclo, vamos a multiplicar el número por sí mismo pero restándole uno, e ir sumando el resultado en otra variable que al final tendrá el factorial.

Factorial con while en Python

Pasemos a la primera función. Tenemos un número del cual vamos a calcular el factorial usando este lenguaje de programación. Hacemos el ciclo, vamos almacenando el resultado y al final lo devolvemos.

Iniciamos el factorial en 1, después hacemos un ciclo while en la línea 5, vamos sumando al factorial y restamos el número en 1 dentro de la línea 7.

def factorial(numero):
    if numero <= 0:
        return 1
    factorial = 1
    while numero > 0:
        factorial = factorial * numero
        numero -= 1
    return factorial

Método recursivo

Para el caso de la función recursiva el código queda todavía más simplificado. La condición de salida es que el número sea menor o igual que 1, cosa que se va a alcanzar en algún momento, pues al invocar a la función dentro de sí misma estamos pasando el número restándole 1.


def factorial_recursivo(numero):
    if numero <= 1:
        return 1
    return numero * factorial(numero-1)

Poniendo todo junto

El modo de uso de la función es pasarle un número para que nos devuelva el factorial del mismo. El código completo con ejemplos queda así:

"""
    https://parzibyte.me/blog
"""


def factorial(numero):
    if numero <= 0:
        return 1
    factorial = 1
    while numero > 0:
        factorial = factorial * numero
        numero -= 1
    return factorial


def factorial_recursivo(numero):
    if numero <= 1:
        return 1
    return numero * factorial(numero-1)


valor = 5
f = factorial(valor)
print(f"El factorial de {valor} es {f}")
f = factorial(valor)
print(f"El factorial (calculado de manera recursiva) de {valor} es {f}")

Al ejecutarlo, la salida es correcta:

Cálculo de factorial en Python

Si quieres puedes leer más sobre Python aquí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Hola, estoy aprendiendo a programar en Python recién llevo pocas horas de aprendizaje y logré hacer mi primer programa sin copiar nada de otro, para calcular el factorial de un número (solo falta poner una condición if para limitar el número si se quiere). Les comparto el código:

    print("\nFACTORIAL DE UN NUMERO")
    print("\n Este programa calcula el factorial de un número")

    numero = int(input("Ingresa un número: "))
    contador = 0
    fact = 1

    for contador in range(1,(numero+1)):
    fact = contador * fact
    print(f"El factorial del número {numero} es {str(fact)}")

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.