# 1. Faça um programa que solicite à pessoa usuária digitar dois números float e calcular a divisão entre esses números...
try:
num1 = float(input("Digite o primeiro número (dividendo): "))
num2 = float(input("Digite o segundo número (divisor): "))
resultado = num1 / num2
except ZeroDivisionError as e:
print(f"Erro de Divisão por Zero: Não é possível dividir um número por zero. [{e}]")
except ValueError as e:
print(f"Erro de Valor: Você deve digitar apenas números válidos. [{e}]")
except Exception as e:
print(f"Ocorreu um erro inesperado: {e}")
else:
print(f"O resultado da divisão é: {resultado}")
# 2. Faça um programa que solicite uma chave a ser pesquisada no dicionário com tratamento de KeyError...
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
nome_busca = input("Digite o nome para pesquisar a idade: ")
try:
idade = idades[nome_busca]
except KeyError:
print("Nome não encontrado")
else:
print(f"A idade de {nome_busca} é {idade} anos.")
# 3. Crie uma função que recebe uma lista como parâmetro e converta todos os valores da lista para float...
def converter_para_float(lista):
lista_float = []
try:
for elemento in lista:
lista_float.append(float(elemento))
except ValueError as e:
print(f"Erro de conversão detectado: {e}")
return None
except TypeError as e:
print(f"Erro de tipo de dado incompatível: {e}")
return None
else:
return lista_float
finally:
print("Fim da execução da função")
# 4. Crie uma função que recebe duas listas como parâmetros e agrupe os elementos um a um formando tuplas de 3 elementos...
def agrupar_listas_com_soma(lista1, lista2):
lista_resultado = []
try:
if len(lista1) != len(lista2):
raise IndexError("A quantidade de elementos em cada lista é diferente.")
for i in range(len(lista1)):
soma = lista1[i] + lista2[i]
lista_resultado.append((lista1[i], lista2[i], soma))
except IndexError as e:
print(f"Erro de Índice: {e}")
return lista_resultado
except TypeError as e:
print(f"Erro de Tipo: Operação de soma inválida devido a valores incoerentes. [{e}]")
return lista_resultado
else:
return lista_resultado
# 5. Desenvolver um código que contabiliza as pontuações de estudantes validando as alternativas com ValueError...
def calcular_notas_testes(gabarito, testes):
alternativas_validas = ['A', 'B', 'C', 'D']
notas_finais = []
try:
for estudante in testes:
nota_estudante = 0
for i in range(len(estudante)):
alternativa = estudante[i]
if alternativa not in alternatives_validas:
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)
except ValueError as e:
print(f"Erro de Validação: {e}")
else:
print(f"Lista de notas dos estudantes: {notas_finais}")
# 6. Criar uma função que avalia cada palavra desse texto e verificar se o tratamento para retirar os símbolos de pontuação foi realizado...
def verificar_pontuacao(lista_palavras):
pontuacoes = [',', '.', '!', '?']
try:
for palavra in lista_palavras:
for p in pontuacoes:
if p in palavra:
raise ValueError(f'O texto apresenta pontuações na palavra "{palavra}".')
except ValueError as e:
print(f"Exceção disparada: {e}")
else:
print("Sucesso: Todas as palavras foram tratadas corretamente!")
# 7. Criar uma função divide_colunas que recebe os dados das colunas de pressão e temperatura...
def divide_colunas(p_lista, t_lista):
coluna_divisao = []
try:
if len(p_lista) != len(t_lista):
raise ValueError("As listas de pressões e temperaturas possuem tamanhos diferentes.")
for p, t in zip(p_lista, t_lista):
if t == 0:
raise ZeroDivisionError("Divisão por zero detectada nos dados de temperatura.")
coluna_divisao.append(p / t)
except ValueError as e:
print(f"Erro de Valor: {e}")
return None
except ZeroDivisionError as e:
print(f"Erro de Divisão: {e}")
return None
else:
return coluna_divisao