Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

DUDA CON EL RESULTADO DE FUNCION PUNTUACION

Estaba revisando la opinion del instructor y el codigo que se sugiere solo muestra "poderoso,"

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}")

al realizarlo me golpee un poco el craneo proque también me ocurria, finalmente este codigo me funciono mostrandome todas las palabras que tenian una, o ! demás, lo comparto para saber si quizas me equivoque al correr el sugerido por el instructor o a alguien mas

def verificar_puntuacion(texto):
  
  simbolos_puntuacion = [',', '.', '!', '?']
  palabras_con_puntuacion = []
  for palabra in texto:
    for simbolo in simbolos_puntuacion:
      if simbolo in palabra:
        palabras_con_puntuacion.append(palabra)
        break  #Avanza a la siguiente palabra 

  if palabras_con_puntuacion:
    raise ValueError(f"El texto presenta puntuaciones en las siguientes palabras: {', '.join(palabras_con_puntuacion)}")
  else:
    print("El texto no presenta puntuaciones.")

# Ejemplo de uso con la lista tratada:
try:
  verificar_puntuacion(lista_tratada)
except ValueError as e:
  print(e)

print("-" * 20)

# Ejemplo de uso con la lista no tratada:
try:
  verificar_puntuacion(lista_no_tratada)
except ValueError as e:
  print(e)
1 respuesta

Hola Bruno,

Gracias por compartir tu experiencia y el código que te ha funcionado. Parece que has encontrado una manera efectiva de identificar todas las palabras que contienen signos de puntuación en una lista de palabras. La diferencia principal entre el código sugerido por el instructor y el tuyo es que el código del instructor detiene la ejecución al encontrar la primera palabra con puntuación, mientras que tu código recopila todas las palabras con puntuación antes de lanzar la excepción.

Tu enfoque es muy útil si deseas tener una visión completa de todas las palabras que necesitan ser tratadas. Aquí hay un pequeño resumen de cómo funciona tu código:

  1. Defines una lista de símbolos de puntuación.
  2. Iteras sobre cada palabra en el texto.
  3. Verificas si alguno de los símbolos de puntuación está presente en la palabra.
  4. Si encuentras un símbolo, añades la palabra a una lista de palabras con puntuación y continúas con la siguiente palabra.
  5. Al final, si hay palabras con puntuación, lanzas una excepción ValueError que enumera todas estas palabras.

Este enfoque es especialmente útil si estás tratando con textos generados por inteligencia artificial o cualquier otro texto donde quieras asegurarte de que todas las palabras estén libres de puntuación antes de continuar con otro tipo de procesamiento.

Espero que esto te ayude a entender las diferencias y el porqué de los resultados que estás observando. ¡Bons estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!