Olá! Seguem minhas resoluções para os exercícios propostos da aula 04:
Questão 01:
try:
n1 = float(input('Digite o primeiro número: '))
n2 = float(input('Digite o segundo número: '))
divisao = n1/n2
except Exception as e:
print(type(e), f'Erro: {e}')
else:
print(f'A divisao de {n1} por {n2} é igual a {divisao}.')
Questão 02:
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
try:
nome = input('Digite um nome: ')
idade = idades[nome]
except KeyError:
print('Nome não encontrado!')
else:
print(f'{nome} tem {idade} anos.')
Questão 03:
def converter_float(lista):
try:
lista_convertida = [float(valor) for valor in lista]
return lista_convertida
except Exception as e:
print(type(e), f'Erro: {e}')
else:
print(lista_convertida)
finally:
print('Fim da execução da função')
numeros = [0, 3, 4, 9, 2, 8]
converter_float(numeros)
Questão 04:
def agrupar(lista1, lista2):
try:
if len(lista1) == len(lista2):
lista_agrupada = [(lista1[i], lista2[i], lista1[i] + lista2[i]) for i in range(len(lista1))]
return lista_agrupada
else:
raise IndexError('A quantidade de elementos em cada lista é diferente.')
except Exception as e:
print(type(e), f'Erro: {e}.')
else:
print(lista_agrupada)
# lista1 = [4,6,7,9,10]
# lista2 = [-4,6,8,7,9]
# lista1 = [4,6,7,9,10,4]
# lista2 = [-4,6,8,7,9]
lista1 = [4,6,7,9,'A']
lista2 = [-4,'E',8,7,9]
agrupar(lista1, lista2)
Questão 05:
def calcula_pontuacao(lista_testes):
gabarito = ['D', 'A', 'B', 'C', 'A']
pontos = []
try:
for teste in lista_testes:
notas = []
for i in range(len(teste)):
if teste[i] not in gabarito:
raise ValueError(f'A alternativa {teste[i]} não é uma opção de alternativa válida')
elif teste[i] == gabarito[i]:
notas.append(1)
else:
notas.append(0)
pontos.append(notas)
pontuacao_total = [sum(notas) for notas in pontos]
except Exception as e:
print(e)
else:
return pontuacao_total
Questão 06:
def verifica_tratamento(lista):
pontuacoes = [',', '.', '!', '?']
try:
for palavra in lista:
if any(char in palavra for char in pontuacoes):
raise ValueError(f' O texto apresenta pontuações na palavra "{palavra}"')
except Exception as e:
print(e)
else:
print('O tratamento para retirada dos símbolos de pontuação foi realizado.')
Questão 07:
def divide_colunas(lista_pressoes, lista_temperaturas):
try:
if len(lista_pressoes) != len(lista_temperaturas):
raise ValueError('As listas não tem o mesmo tamanho. Favor verificar.')
razao = [round((pressao / temperatura), 1) for pressao, temperatura in zip(lista_pressoes, lista_temperaturas)]
return razao
except ValueError as e:
print(e)
except ZeroDivisionError as e:
print('A lista de temperaturas não pode possuir um valor igual a 0. Favor verificar.')
else:
print(razao)