Sección 5 - Estructura de datos con Python
# 1 - División con manejo de errores
try:
num1 = float(input("Ingresa el primer número: "))
num2 = float(input("Ingresa el segundo número: "))
resultado = num1 / num2
except ZeroDivisionError as e:
print(f"Error: No se puede dividir entre cero. ({e})")
except ValueError as e:
print(f"Error: Entrada inválida. ({e})")
else:
print(f"Resultado de la división: {resultado}")
# 2 - Búsqueda en diccionario con manejo de KeyError
edades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
clave = input("Ingresa el nombre a buscar: ")
try:
edad = edades[clave]
except KeyError:
print("Nombre no encontrado")
else:
print(f"Edad de {clave}: {edad}")
# 3 - Conversión de lista a flotantes con manejo de errores
def convertir_a_flotante(lista):
try:
return [float(x) for x in lista]
except Exception as e:
print(f"Error: {e}")
finally:
print("Fin de la ejecución de la función")
# 4 - Agrupar listas con manejo de errores
def agrupar_listas(lista1, lista2):
try:
if len(lista1) != len(lista2):
raise IndexError("La cantidad de elementos en cada lista es diferente.")
return [(a, b, a + b) for a, b in zip(lista1, lista2)]
except Exception as e:
print(f"Error: {e}")
# Pruebas para la función agrupar_listas
# lista1 = [4, 6, 7, 9, 10]
# lista2 = [-4, 6, 8, 7, 9]
# print(agrupar_listas(lista1, lista2))
# 5 - Contabilizar puntuaciones con validación
def calcular_puntajes(respuestas, tests):
try:
for test in tests:
for r in test:
if r not in ['A', 'B', 'C', 'D']:
raise ValueError(f"La alternativa {r} no es una opción de alternativa válida")
puntajes = [sum(1 for r, t in zip(respuestas, test) if r == t) for test in tests]
print(f"Puntajes: {puntajes}")
except ValueError as e:
print(f"Error: {e}")
# 6 - Validar texto tratado de puntuaciones
def validar_texto(lista):
try:
for palabra in lista:
if any(p in palabra for p in [',', '.', '!', '?']):
raise ValueError(f"El texto presenta puntuaciones en la palabra \"{palabra}\"")
print("Texto limpio de puntuaciones.")
except ValueError as e:
print(f"Error: {e}")