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

Desafío: hora de practicar - Trabajando con Excepciones - Parte 2

[5]

respuestas = ['D', 'A', 'B', 'C', 'A']

def contabilizar_puntuaciones(lista, resp):
  try:
    alternativas_invalidas = []
    for test in lista:
      for i in range(len(test)):
        if test[i] not in ['A', 'B', 'C', 'D']:
          if test[i] not in alternativas_invalidas:
            alternativas_invalidas.append(test[i])

    if alternativas_invalidas:
      if len(alternativas_invalidas) == 1: #si solo una alternativa no es válida
        mensaje = "La alternativa " + ", ".join(alternativas_invalidas) + " no es válida."
      else:                                #si más de una alternativa no es válida
        mensaje = "Las alternativas " + ", ".join(alternativas_invalidas) + " no son válidas."
      raise ValueError(mensaje)
    
    puntuaciones = [sum([1 for i in range(len(test)) if test[i] == resp[i]]) for test in lista]
    
    return print(f"Lista de puntaciones: {puntuaciones}")

  except ValueError as e:
    print(e)


tests_sin_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'C', 'A'],
                ['D',   'B', 'A', 'C', 'A']]

tests_con_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'],
                ['D', 'B', 'A', 'C', 'A']]

print("Tests sin Excepciones: ".upper())
print(contabilizar_puntuaciones(tests_sin_ex, respuestas))
print("\nTest con excepciones: ".upper())
print(contabilizar_puntuaciones(tests_con_ex, respuestas))

[6]

def analizador_texto(lista):
  try:
    palabras_no_tratadas = []

    for palabra in lista:
      for caracter in palabra:
        if caracter in [',', '.', '!', '?']:
          palabras_no_tratadas.append(palabra)
          break  # Salta a la siguiente palabra

    if palabras_no_tratadas:
      mensaje = "El texto presenta puntuación en las siguientes palabras: " + ", ".join(palabras_no_tratadas)
      raise ValueError(mensaje)

    print("La lista está tratada:")

  except ValueError as e:
    print(e)



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!']   
        
print(analizador_texto(lista_tratada))
print(analizador_texto(lista_no_tratada))