5_14_Excepciones_desafio_3

Run Settings
LanguagePython
Language Version
Run Command
def calcular_factorial(numero): """ Calcula el factorial de un número entero positivo. Maneja excepciones si el número es negativo, no es un entero, o es muy grande. """ try: # Verificar si el número es un entero if not isinstance(numero, int): raise TypeError("El número debe ser un entero.") # Verificar si el número es negativo if numero < 0: raise ValueError("El número no puede ser negativo para calcular el factorial.") # Verificar si el número es demasiado grande para ser procesado if numero > 1000: # Este límite es arbitrario; en la práctica, se puede ajustar según el contexto raise OverflowError("El número es demasiado grande para calcular el factorial.") # Calcular el factorial de forma iterativa factorial = 1 for i in range(1, numero + 1): factorial *= i # Multiplicación acumulativa # Imprimir y devolver el resultado del factorial print(f"El factorial de {numero} es: {factorial}") return factorial except TypeError as te: # Captura si el tipo de dato no es un entero print(f"Error de tipo: {te}") except ValueError as ve: # Captura si el número es negativo print(f"Error de valor: {ve}") except OverflowError as oe: # Captura si el número es demasiado grande y podría causar problemas de memoria o tiempo de procesamiento print(f"Error de desbordamiento: {oe}") except Exception as e: # Captura cualquier otro error inesperado print(f"Ha ocurrido un error inesperado: {e}") # Ejemplo de uso try: entrada = int(input("Ingrese un número entero positivo: ")) # Solicita un número al usuario calcular_factorial(entrada) except ValueError: # Captura si el usuario ingresa algo que no se puede convertir a un entero print("Error: Debe ingresar un número entero válido.")
Editor Settings
Theme
Key bindings
Full width
Lines