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.pyen el directorio~/project - Cómo implementar la función
factorialpara calcular el factorial de un número entero no negativo - Cómo manejar entradas negativas elevando una
ValueErrory 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:
- Crea un nuevo archivo y guárdalo como
factorial.pyen el directorio~/project.
cd ~/project
touch factorial.py
- 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:
- 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.
- 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.
- 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.



