Ejercicio 1: Solicitar dos números decimales y calcular la división con manejo de errores
print("Ejercicio N° 1") try: num1 = float(input("Ingrese el primer número decimal: ")) num2 = float(input("Ingrese el segundo número decimal: ")) resultado = num1 / num2 # Intentar realizar la división except ZeroDivisionError as e: print(f"Error: No se puede dividir por cero. {e}") except ValueError as e: print(f"Error: Valor no válido. Asegúrese de ingresar números decimales. {e}") except Exception as e: print(f"Error: {e}") else: print(f"El resultado de la división es: {resultado}") finally: print() # Salto de línea vacío
Ejercicio 2: Buscar clave en un diccionario con manejo de error KeyError
print("Ejercicio N° 2") edades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17} nombre = input("Ingrese un nombre para buscar la edad: ") try: edad = edades[nombre] # Intentar obtener el valor de la clave print(f"La edad de {nombre} es {edad}.") except KeyError: print("Nombre no encontrado.") finally: print() # Salto de línea vacío
Ejercicio 3: Convertir todos los valores de una lista a flotantes
print("Ejercicio N° 3") def convertir_a_flotante(lista): try: lista_convertida = [float(i) for i in lista] # Intentar convertir a flotante return lista_convertida except ValueError as e: print(f"Error: No se puede convertir el valor a flotante. {e}") except Exception as e: print(f"Error: {e}") finally: print("Fin de la ejecución de la función")
Ejercicio 4: Agrupar dos listas en tuplas de 3 elementos
print("Ejercicio N° 4") def agrupar_listas(lista1, lista2): try: if len(lista1) != len(lista2): raise IndexError("La cantidad de elementos en cada lista es diferente.") lista_tuplas = [(lista1[i], lista2[i], lista1[i] + lista2[i]) for i in range(len(lista1))] return lista_tuplas except IndexError as e: print(f"Error: {e}") except ValueError as e: print(f"Error: {e}") except Exception as e: print(f"Error: {e}") finally: print("Fin de la ejecución de la función.")
Prueba con listas de igual tamaño
lista1 = [4, 6, 7, 9, 10] lista2 = [-4, 6, 8, 7, 9] print(agrupar_listas(lista1, lista2))
Prueba con listas de tamaño diferente
lista1_diferente = [4, 6, 7, 9, 10, 4] lista2_diferente = [-4, 6, 8, 7, 9] print(agrupar_listas(lista1_diferente, lista2_diferente))
Prueba con valores incoherentes
lista1_incoherente = [4, 6, 7, 9, 'A'] lista2_incoherente = [-4, 'E', 8, 7, 9] print(agrupar_listas(lista1_incoherente, lista2_incoherente)) print() # Salto de línea vacío
Ejercicio 5: Calcular las puntuaciones de los estudiantes con manejo de excepciones
print("Ejercicio N° 5") def calcular_puntuaciones(tests): try: notas = [] for test in tests: for respuesta in test: if respuesta not in ['A', 'B', 'C', 'D']: # Validar las alternativas raise ValueError(f"La alternativa {respuesta} no es una opción de alternativa válida") # Calcular la puntuación score = test.count('A') + test.count('B') + test.count('C') + test.count('D') notas.append(score) return notas except ValueError as e: print(f"Error: {e}") finally: print("Fin de la ejecución de la función.")
Ejercicio 6: Verificar el tratamiento de símbolos de puntuación
print("Ejercicio N° 6") def verificar_puntuacion(lista): try: for palabra in lista: if palabra[-1] in [',', '.', '!', '?']: # Comprobar si la palabra tiene puntuación al final raise ValueError(f"El texto presenta puntuaciones en la palabra {palabra}") print("El texto no tiene puntuaciones.") except ValueError as e: print(e) finally: print("Fin de la ejecución de la función.")
Lista tratada (sin puntuación)
lista_tratada = ['Python', 'es', 'un', 'lenguaje', 'de', 'programación', 'poderoso', 'versátil', 'y', 'fácil', 'de', 'aprender', 'utilizado', 'en', 'diversos', 'campos', 'desde', 'análisis', 'de', 'datos', 'hasta', 'inteligencia', 'artificial'] verificar_puntuacion(lista_tratada)
Lista no tratada (con puntuación)
lista_no_tratada = ['Python', 'es', 'un', 'lenguaje', 'de', 'programación', 'poderoso,', 'versátil', 'y', 'fácil,', 'de', 'aprender', 'utilizado', 'en', 'diversos', 'campos,', 'desde', 'análisis', 'de', 'datos', 'hasta', 'inteligencia', 'artificial!'] verificar_puntuacion(lista_no_tratada)