Cálculo del factorial en Python

PythonBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderás a calcular el factorial de un número entero no negativo. El factorial de un número entero positivo es el producto de todos los enteros positivos menores o iguales a él, y el factorial de 0 es 1.

👀 Vista previa

$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo crear un archivo factorial.py en el directorio ~/project
  • Cómo implementar la función factorial para calcular el factorial de un número entero no negativo
  • Cómo manejar entradas negativas elevando una ValueError y mostrar un mensaje que diga "Por favor, ingrese un número entero no negativo"

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Comprender el concepto de factorial y cómo calcularlo
  • Escribir una función de Python para calcular el factorial de un número entero no negativo
  • Manejar errores de entrada y mostrar mensajes de error adecuados
  • Aplicar tus conocimientos de programación en Python para resolver un problema del mundo real

Crea el archivo factorial.py

En este paso, crearás el archivo factorial.py en el directorio ~/project. Sigue los pasos siguientes para completar este paso:

  1. Crea un nuevo archivo y guárdalo como factorial.py en el directorio ~/project.
cd ~/project
touch factorial.py
  1. En el archivo factorial.py, agrega el siguiente código:
def factorial(n):
    """
    Calcula el factorial de un número entero no negativo.

    Argumentos:
        n (int): El número entero no negativo para el cual se calculará el factorial.

    Devuelve:
        str: El factorial del entero de entrada en el formato "{n}! = {cadena_de_factores} = {resultado}".

    Lanza:
        ValueError: Si el entero de entrada es negativo.
    """
    ## Agrega tu código aquí

Este es el punto de partida para la función factorial que implementarás en el siguiente paso.

✨ Revisar Solución y Practicar

Implementa la función factorial

En este paso, implementarás la función factorial en el archivo factorial.py. Sigue los pasos siguientes para completar este paso:

  1. En el archivo factorial.py, reemplaza el comentario ## Agrega tu código aquí con el siguiente código:
def factorial(n):
    """
    Calcula el factorial de un número entero no negativo.

    Argumentos:
        n (int): El número entero no negativo para el cual se calculará el factorial.

    Devuelve:
        str: El factorial del entero de entrada en el formato "{n}! = {cadena_de_factores} = {resultado}".

    Lanza:
        ValueError: Si el entero de entrada es negativo.
    """
    if n < 0:
        raise ValueError("Por favor, ingrese un número entero no negativo.")
    elif n == 0:
        return "0! = 1"
    else:
        result = 1
        factors = []
        for i in range(1, n + 1):
            result *= i
            factors.append(str(i))
        factors_str = " * ".join(factors)
        return f"{n}! = {factors_str} = {result}"

## Salida de ejemplo parcial:
print(factorial(2))
print(factorial(8))

Este código implementa la funcionalidad de calcular el factorial de un número entero no negativo. Maneja el caso de una entrada negativa elevando una ValueError, y el caso de 0 devolviendo "0! = 1". Para todos los demás enteros no negativos, calcula el factorial multiplicando todos los números desde 1 hasta el número de entrada, y devuelve el resultado en el formato deseado.

  1. Guarda el archivo factorial.py.

Tu archivo factorial.py ya está completo, y puedes usar la función factorial para calcular el factorial de cualquier número entero no negativo.

  1. Para probar tu implementación, ejecuta el siguiente comando en tu terminal:
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.