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.

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

Resumen

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

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar