Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Desafio trabajando con excepciones

Punto No. 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.

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 de palabras sin 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!']  # lista de palabras con signos de puntuación

def evaluar_puntuacion(lista_palabras):  # definición de la función que revisa si hay puntuación en las palabras
    try:  # comienza un bloque try para capturar posibles excepciones
        for palabra in lista_palabras:  # itera palabra por palabra en la lista proporcionada
            if any(puntuacion in palabra for puntuacion in [',', '.', '!', '?']):  # comprueba si la palabra contiene , . ! o ?
                raise ValueError(f"El texto presenta puntuaciones en la palabra '{palabra}'.")  # lanza un error si encuentra puntuación
    except ValueError as e:  # captura la excepción ValueError lanzada en el bloque try
        print(f"Error: {e}")  # imprime un mensaje de error con la información de la excepción

evaluar_puntuacion(lista_tratada)  # llama a la función con la lista sin puntuación (no debe imprimir error)
evaluar_puntuacion(lista_no_tratada)  # llama a la función con la lista con puntuación (imprime error por la primera coincidencia)