# APLICANDO
5. gabarito = ['D', 'A', 'B', 'C', 'A']
testes_sem_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'C', 'A'], ['D', 'B', 'A', 'C', 'A']]
testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'], ['D', 'B', 'A', 'C', 'A']]
def calcular_notas(testes, gabarito):
try:
for estudante in testes:
for resposta in estudante:
if resposta not in ["A", "B", "C", "D"]:
raise ValueError(f"A alternativa {resposta} não é uma opção de alternativa válida.")
notas_finas = []
for estudante in testes:
nota = 0
for resposta, correta in zip(estudante, gabarito):
if resposta == correta:
nota += 1
notas_finas.append(nota)
return notas_finas
except ValueError as erro:
return erro
print("Notas sem exceção: ")
resultado_erro = calcular_notas(testes_sem_ex, gabarito)
print(f"Resultado: {resultado_erro}")
print("\n")
print("Notas com exceção: ")
resultado_erro = calcular_notas(testes_com_ex, gabarito)
print(f"Resultado: {resultado_erro}")
6. lista_tratada = ['Python', 'é', 'uma', 'linguagem', 'de', 'programação', 'poderosa', 'versátil',
'e', 'fácil', 'de', 'aprender', 'utilizada', 'em', 'diversos', 'campos', 'desde',
'análise', 'de', 'dados', 'até', 'inteligência', 'artificial']
lista_nao_tratada = ['Python', 'é', 'uma', 'linguagem', 'de', 'programação', 'poderosa,', 'versátil',
'e', 'fácil,', 'de', 'aprender', 'utilizada', 'em', 'diversos', 'campos,', 'desde',
'análise', 'de', 'dados', 'até', 'inteligência', 'artificial!']
def avaliar_texto(lista):
try:
for palavra in lista:
if "," in palavra or "." in palavra or "!" in palavra or "?" in palavra:
raise ValueError(f"O texto apresenta pontuação na palavra '{palavra}'.")
return "Texto tratado!"
except ValueError as erro:
return str(erro)
print("Lista tratada: ")
print(avaliar_texto(lista_tratada))
print("\n")
print("Lista não tratada: ")
print(avaliar_texto(lista_nao_tratada))
7. # DADOS SEM EXCEÇÃO
pressoes = [100, 120, 140, 160, 180]
temperaturas = [20, 25, 30, 35, 40]
# DADOS COM EXCEÇÃO
#1. ZERO
pressoes_zero = [60, 120, 140, 160, 180]
temperaturas_zero = [0, 25, 30, 35, 40]
# 2. VALUE
pressoes_value = [100, 120, 140, 160]
temperaturas_value = [20, 25, 30, 35, 40]
def colunas(pressoes, temperaturas):
try:
if len(pressoes) != len(temperaturas):
raise ValueError(f"A quantidade de elementos nas listas de pressões e temperatura são diferentes.")
resultado = []
for p, t in zip(pressoes, temperaturas):
razao = p / t
resultado.append(razao)
return resultado
except ValueError as erro:
return f"Value Error: {erro}"
except ZeroDivisionError as erro:
return f"ZeroDivisonError: Divisão por zero detectada no experimento: {erro}"
print("Sem exceção: ")
print(f"Resultado: {colunas(pressoes, temperaturas)}")
print("\n")
print("Com exceção zero: ")
print(f"Resultado: {colunas(pressoes_zero, temperaturas_zero)}")
print("\n")
print("Com exceção value: ")
print(f"Resultado: {colunas(pressoes_value, temperaturas_value)}")