1 - Solicita dos números decimales, realiza la división e informa el resultado o el tipo de error (ValueError, ZeroDivisionError).
try:
a_str = input("Ingrese el primer número decimal: ")
b_str = input("Ingrese el segundo número decimal: ")
a = float(a_str)
b = float(b_str)
resultado = a / b
except ValueError as e:
print(f"Error de valor: no se pudo convertir a decimal ({type(e).__name__})")
except ZeroDivisionError as e:
print(f"Error de división: no es posible dividir por cero ({type(e).__name__})")
else:
print(f"Resultado de {a} / {b} = {resultado}")
finally:
print("Fin de la operación de división.\n")
2 - Busca una clave en un diccionario y maneja KeyError
edades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
nombre = input("Ingrese un nombre a buscar en el diccionario: ")
try:
valor = edades[nombre]
except KeyError:
print("Nombre no encontrado")
else:
print(f"{nombre} tiene {valor} años")
finally:
print("Búsqueda finalizada.\n")
3 - Convierte todos los elementos de una lista a float. Muestra el tipo de error si ocurre y siempre imprime 'Fin de la ejecución de la función'.
try:
resultado = [float(x) for x in lista]
return resultado
except Exception as e:
print(f"Error: {type(e).__name__}")
finally:
print("Fin de la ejecución de la función.\n")
4 - Agrupa dos listas en tuplas (x, y, x+y). Si tienen distinto tamaño, arroja IndexError con mensaje específico. Captura otros errores y muestra su tipo.
try:
if len(lista1) != len(lista2):
raise IndexError("La cantidad de elementos en cada lista es diferente.")
resultado = []
for i in range(len(lista1)):
x = lista1[i]
y = lista2[i]
suma = x + y
resultado.append((x, y, suma))
return resultado
except IndexError as e:
# Propaga el IndexError con el mensaje requerido
raise
except Exception as e:
print(f"Error: {type(e).__name__}")
5 - Recibe una lista de tests (listas de respuestas) y calcula la nota según respuestas_correctas. Lanza ValueError si aparece alternativa inválida. Retorna lista de puntajes si todo es válido.
respuestas_correctas = ['D', 'A', 'B', 'C', 'A']
validas = {'A', 'B', 'C', 'D'}
puntajes = []
for test in tests:
for alt in test:
if alt not in validas:
raise ValueError(f"La alternativa {alt} no es una opción de alternativa válida")
# si todas válidas, calculamos puntaje
score = sum(int(alt == corr)
for alt, corr in zip(test, respuestas_correctas))
puntajes.append(score)
return puntajes
6 - Verifica que ninguna palabra contenga ',', '.', '!' o '?'. Si encuentra alguna, lanza ValueError.
signos = {',', '.', '!', '?'}
for palabra in lista_palabras:
if any(s in palabra for s in signos):
raise ValueError(f'El texto presenta puntuaciones en la palabra "{palabra}"')
print("Lista verificada: no contiene puntuación.\n")