Finalizado os códigos. Com um pouco de auxílio da internet e revisão de algumas aulas, foi possível concluir tudo.
try:
n1 = float(input('Digite um numéro divisor: '))
n2 = float(input('Digite um numéro dividendo: '))
divisao = n1 / n2
except ZeroDivisionError as zd:
print(f'Erro: {type(zd)}. Não é possível dividir por zero.')
except TypeError as te:
print(f'Erro: {type(te)}. Os números precisam ser inteiros ou float.')
except ValueError as ve:
print(f'Erro: {type(ve)}. Os números precisam ser inteiros ou float.')
else:
print(divisao)
finally:
print('Consulta encerrada.')
try:
consulta = str(input('Digite o nome para ser consultado a idade: '))
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
if idades.get(consulta) == None:
raise KeyError("O nome não foi encontrado na lista.")
except KeyError as ke:
print(f'Erro {type(ke)}. O nome não foi encontrado na lista.')
else:
print(f'A idade de {consulta} é de {idades.get(consulta)} anos.')
try:
lista = [8, 7, 4.5, '6.2']
lista_float = []
for x in lista:
lista_float.append(float(x))
except ValueError as ve:
print(f'Erro {type(ve)}. São permitidos apenas números na lista.')
except NameError as ne:
print(f'Erro {type(ne)}. A lista possui uma variável não definida.')
else:
print(f'A lista foi convertida para float:\n{lista_float}')
finally:
print('Fim da execução da função.')
lista_1 = [4,6,7,9,3]
lista_2 = [-4,5,8,7,9]
soma_listas = []
def somalistas(lista1, lista2):
try:
if len(lista1) != len(lista2):
raise IndexError('As duas listas precisam ter a mesma quantidade de elementos.')
for i in range(len(lista1)):
soma_listas.append(lista1[i] + lista2[i])
except IndexError as ie:
print(f'Erro: {type(ie)}. As duas listas precisam ter a mesma quantidade de elementos.')
except TypeError as te:
print(f'Erro: {type(te)}. As duas listas precisam conter apenas números como elementos.')
else:
listatupla = list(zip(lista1, lista2,soma_listas))
print(listatupla)
gabarito = ['D', 'A', 'B', 'C', 'A']
testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'B', 'A', 'B', 'A'], ['B', 'B', 'A', 'C', 'A']]
def calculanota(teste):
#Tratamento de erros
try:
for x in teste:
if len(x) != 5:
raise IndexError("As respostas dos alunos devem ter 5 alternativas.")
for i in x:
if i not in ["A", "B", "C", "D"]:
raise ValueError("Letra não é uma alternativa possível na lista.")
except ValueError as ve:
print(f"Erro: {type(ve)}. Letra não é uma alternativa possível na lista.")
except IndexError as ie:
print(f"Erro: {type(ie)}. As respostas dos alunos devem ter 5 alternativas.")
else:
#Execução do código
nota = []
for x in range(len(teste)):
listas = [[i, 0] for i in teste[x]]
for itens in range(len(listas)):
if listas[itens][0] == gabarito[itens]:
print(f'{listas[itens][0]} = {gabarito[itens]}. +1 ponto')
listas[itens][1] = 1
else:
print(f'{listas[itens][0]} =/= {gabarito[itens]}.')
nota.append(listas[itens][1])
print(f"Nota do aluno {x+1} = {sum(nota)}.\n")
nota = []
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']
try:
for x in lista_tratada:
if ('!') in x or (',') in x or ('.') in x or ('(') in x or (')') in x or ('#') in x or ('@') in x or ('%') in x or (';') in x:
raise ValueError('A frase possui pontuação.')
except ValueError as ve:
print(x)
print(f'Erro: {type(ve)}. A frase possui pontuação.')
else:
print('A frase não possui pontuação.')
pressoes = [100, 120, 140, 160]
temperaturas = [20, 25, 30, 35, 40]
def divide_colunas(press,temp):
try:
if len(press) != len(temp):
raise ValueError('As listas tem tamanhos diferentes.')
num_juntos = []
divisao = []
juntos = list(zip(press,temp))
for i in juntos:
num_juntos.append(i)
for i in num_juntos:
divisao.append(round(i[0] / i[1], 4))
print(divisao)
except ValueError as ve:
print(f'Erro: {type(ve)}. Listas tem tamanhos diferentes.')
except ZeroDivisionError as zde:
print(f'Erro: {type(zde)}. Não é possível dividir por zero.')
divide_colunas(pressoes, temperaturas)