[7]
0 s
"""
5 - Como desafío, se te ha asignado la tarea de desarrollar un código que contabiliza las puntuaciones de estudiantes
de una institución educativa de acuerdo con sus respuestas en una prueba. Este código debe ser probado para un ejemplo
de 3 estudiantes con una lista de listas en la que cada lista tiene las respuestas de 5 preguntas objetivas de cada estudiante.
Cada pregunta vale un punto y las alternativas posibles son A, B, C o D.
"""
respuesta = ['D', 'A', 'B', 'C', 'A']
tests_sin_ex
[8]
0 s
corrector(tests_sin_ex)
[5, 3, 3]
[9]
0 s
corrector(tests_con_ex)
La alternativa E no es una opción de alternativa válida
[14]
0 s
"""
6 - Estás trabajando con procesamiento de lenguaje natural (NLP) y, en esta ocasión, tu líder te pidió que crees un fragmento de código que
reciba una lista con las palabras separadas de una frase generada por ChatGPT.
Necesitas crear una función que evalúe cada palabra de este texto y verifique si el tratamiento para quitar los símbolos
de puntuación (',', '.', '!' y '?') se realizó. De lo contrario, se lanzará una excepción del tipo ValueError señalando
el primer caso en que se detectó el uso de una puntuación a través de la frase "El texto presenta puntuaciones en la palabra "[palabra]"".
Esta solicitud se centra en el análisis del patrón de frases generadas por la inteligencia artificial.
Datos para probar el código:
Lista tratada:
"""
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']
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!']
def evaluar_puntuacion(lista_palabras):
try:
for palabra in lista_palabras:
if any(puntuacion in palabra for puntuacion in [',', '.', '!', '?']):
raise ValueError(f"El texto presenta puntuaciones en la palabra '{palabra}'.")
except ValueError as e:
print(f"Error: {e}")
[15]
0 s
evaluar_puntuacion(lista_tratada)
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']
[16]
0 s
evaluar_puntuacion(lista_no_tratada)
Error: El texto presenta puntuaciones en la palabra 'poderoso,'.
[18]
0 s
"""
7 - Función de división de columnas y manejo de excepciones:
"""
# Creando la función que recibe las dos listas y la operación a realizar
def divide_columnas(lista_1: list, lista_2: list) -> list:
# try-except que verifica si es posible calcular la división y lanza una excepción si las listas tienen tamaños diferentes
# o si hay alguna división por cero en uno de los cálculos entre los números de las listas
try:
if len(lista_1) != len(lista_2): # Verificando si las listas tienen el mismo tamaño, si no, lanza una excepción
raise ValueError("Las listas deben tener el mismo tamaño")
# La función zip empareja los elementos de las listas y se genera una lista mediante la división entre las parejas
resultado = [round(a / b, 2) for a, b in zip(lista_1, lista_2)]
except ValueError as e:
print(e)
except ZeroDivisionError as e:
print(f"{e}: La 2ª lista no puede tener un valor igual a 0")
else:
return resultado
[19]
0 s
# Probando en el ejemplo que no lanza excepciones
presiones = [100, 120, 140, 160, 180]
temperaturas = [20, 25, 30, 35, 40]
divide_columnas(presiones, temperaturas)
[5.0, 4.8, 4.67, 4.57, 4.5]
[20]
0 s
# Probando en el ejemplo que lanza una excepción (ZeroDivisionError)
presiones = [60, 120, 140, 160, 180]
temperaturas = [0, 25, 30, 35, 40]
divide_columnas(presiones, temperaturas)
division by zero: La 2ª lista no puede tener un valor igual a 0
[21]
0 s
# Probando en el ejemplo que lanza una excepción (ValueError)
presiones = [100, 120, 140, 160]
temperaturas = [20, 25, 30, 35, 40]
divide_columnas(presiones, temperaturas)
Las listas deben tener el mismo tamaño