[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))