# Questão 1: Calcule a divisão entre dois números float
try:
# entrada dos números
num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
# cálculo da divisão
divisao = num1 / num2
# exibindo o resultado
print(f"Resultado da divisão: {divisao}")
# erro para divisão por zero
except ZeroDivisionError:
print("Erro: não é possível dividir um número por zero.")
# erro para entrada de texto
except ValueError:
print("Erro: o valor digitado é inválido.")
# exibição do tipo de erro
except Exception as erro:
print(f"Ocorreu um erro: {type(erro).__name__}")
# Questão 2: Pesquise uma chave em um dicionário com tratamento de erro
idades = {
'Júlia': 16,
'Carol': 23,
'Alberto': 19,
'Roberta': 17
}
try:
# entrada do nome
nome = input("Digite um nome: ")
# busca da idade no dicionário
idade = idades[nome]
# exibindo o resultado
print(f"Idade: {idade}")
# tratamento para chave inexistente
except KeyError:
print("Nome não encontrado")
# Questão 3: Converta os valores de uma lista para float
# função para converter os valores
def converter_float(lista):
try:
# conversão dos valores para float
lista_float = [float(valor) for valor in lista]
# retorno da nova lista
return lista_float
# tratamento de erro
except Exception as erro:
print(f"Ocorreu um erro: {type(erro).__name__}")
finally:
print("Fim da execução da função")
# lista para teste
valores = ['10', '5.5', '8', 'texto']
# chamada da função
resultado = converter_float(valores)
# exibindo o resultado
print(resultado)
# Questão 4: Agrupe os elementos de duas listas em tuplas
# função para agrupar os valores
def agrupar_listas(lista1, lista2):
try:
# verificação do tamanho das listas
if len(lista1) != len(lista2):
raise IndexError(
'A quantidade de elementos em cada lista é diferente.'
)
# criação da lista de tuplas
resultado = [
(lista1[i], lista2[i], lista1[i] + lista2[i])
for i in range(len(lista1))
]
# retorno da lista
return resultado
# tratamento de erro para tamanhos diferentes
except IndexError as erro:
print(erro)
# tratamento de outros erros
except Exception as erro:
print(f"Ocorreu um erro: {type(erro).__name__}")
# listas para teste
lista1 = [4, 6, 7, 9, 10]
lista2 = [-4, 6, 8, 7, 9]
# chamada da função
resultado = agrupar_listas(lista1, lista2)
# exibindo o resultado
print(resultado)
# Questão 5: Função para correção das notas
def corrige_provas(gabarito, testes):
notas = []
# verificação de cada teste
for teste in testes:
nota = 0
# verificação de cada resposta
for i in range(len(teste)):
# validação das alternativas
if teste[i] not in ['A', 'B', 'C', 'D']:
raise ValueError(
f"A alternativa {teste[i]} não é uma opção de alternativa válida"
)
# soma da pontuação
if teste[i] == gabarito[i]:
nota += 1
notas.append(nota)
return notas
# Questão 5: Testando no exemplo que não lança exceção
gabarito = ['D', 'A', 'B', 'C', 'A']
testes_sem_ex = [
['D', 'A', 'B', 'C', 'A'],
['C', 'A', 'A', 'C', 'A'],
['D', 'B', 'A', 'C', 'A']
]
try:
notas = corrige_provas(gabarito, testes_sem_ex)
print(notas)
except ValueError as erro:
print(erro)
# Questão 5: Testando no exemplo que lança exceção
gabarito = ['D', 'A', 'B', 'C', 'A']
testes_com_ex = [
['D', 'A', 'B', 'C', 'A'],
['C', 'A', 'A', 'E', 'A'],
['D', 'B', 'A', 'C', 'A']
]
try:
notas = corrige_provas(gabarito, testes_com_ex)
print(notas)
except ValueError as erro:
print(erro)