1-
try:
num1 = float(input("Digite o primeiro número (dividendo): "))
num2 = float(input("Digite o segundo número (divisor): "))
resultado = num1 / num2
print(f"O resultado da divisão de {num1} por {num2} é: {resultado:.2f}")
except ZeroDivisionError as erro:
print("\n--- Erro Gerado ---")
print(f"Tipo de Erro: {type(erro).name}")
print("Mensagem: Não é possível realizar uma divisão por zero!")
except ValueError as erro:
print("\n--- Erro Gerado ---")
print(f"Tipo de Erro: {type(erro).name}")
print("Mensagem: Entrada inválida! Você deve digitar apenas números")
Digite o primeiro número (dividendo): 5
Digite o segundo número (divisor): 0
--- Erro Gerado ---
Tipo de Erro: ZeroDivisionError
Mensagem: Não é possível realizar uma divisão por zero!
2-
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
nome_pesquisa = input("Digite o nome que deseja pesquisar a idade: ")
try:
idade_encontrada = idades[nome_pesquisa]
except KeyError:
print("Nome não encontrado")
else:
print(f"A idade de {nome_pesquisa} é {idade_encontrada} anos.")
Digite o nome que deseja pesquisar a idade: Marcelo
Nome não encontrado
3-
def converter_para_float(lista_original: list) -> list:
try:
lista_convertida = [float(elemento) for elemento in lista_original]
except ValueError as erro:
print("\n--- Erro Gerado ---")
print(f"Tipo de Erro: {type(erro).name}")
print("Mensagem: A lista contém elementos de texto que não podem ser convertidos para número.")
return []
except TypeError as erro:
print("\n--- Erro Gerado ---")
print(f"Tipo de Erro: {type(erro).name}")
print("Mensagem: A lista contém tipos de dados incompatíveis (ex: sublistas ou dicionários).")
return []
else:
return lista_convertida
finally:
print("Fim da execução da função")
4-
def agrupar_e_somar(lista_a: list, lista_b: list) -> list:
try:
if len(lista_a) != len(lista_b):
raise IndexError("A quantidade de elementos em cada lista é diferente.")
lista_resultado = [(lista_a[i], lista_b[i], lista_a[i] + lista_b[i]) for i in range(len(lista_a))]
return lista_resultado
except IndexError as erro:
print("\n--- Erro Gerado via raise ---")
print(f"Tipo de Erro: {type(erro).name}")
print(f"Mensagem: {erro}")
return []
except TypeError:
print("\n--- Erro Gerado Automaticamente ---")
print("Tipo de Erro: TypeError")
print("Mensagem: Não foi possível realizar a soma. Um ou mais elementos não são numéricos.")
return []
5- Correção das notas
def calcular_notas_estudantes(testes: list, gabarito: list) -> list:
notas_finais = []
try:
for num_estudante, respostas in enumerate(testes, start=1):
nota_estudante = 0
for i, alternativa in enumerate(respostas):
if alternativa not in ['A', 'B', 'C', 'D']:
raise ValueError(f"A alternativa {alternativa} não é uma opção de alternativa válida")
if alternativa == gabarito[i]:
nota_estudante += 1
notas_finais.append(nota_estudante)
return notas_finais
except ValueError as erro:
print("\n--- Erro Encontrado ---")
print(f"Tipo de Erro: ValueError")
print(f"Mensagem: {erro}")
return []
- Notas sem 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']]
print("Executando teste sem exceção:")
resultado1 = calcular_notas_estudantes(testes_sem_ex, gabarito)
if resultado1:
print(f"Notas dos estudantes: {resultado1}")
Executando teste sem exceção:
Notas dos estudantes: [5, 3, 3]
- Notas com exceção
testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'], ['D', 'B', 'A', 'C', 'A']]
print("Executando teste com exceção:")
resultado2 = calcular_notas_estudantes(testes_com_ex, gabarito)
if resultado2:
print(f"Notas dos estudantes: {resultado2}")
Executando teste com exceção:
--- Erro Encontrado ---
Tipo de Erro: ValueError
Mensagem: A alternativa E não é uma opção de alternativa válida