1
resposta

[Projeto] resolução de desafio

# 1. Divisão com tratamento de erro
try:
    num1 = float(input("Digite o dividendo: "))
    num2 = float(input("Digite o divisor: "))
    resultado = num1 / num2
except ZeroDivisionError as e:
    print(f"Erro: Divisão por zero não é permitida. ({type(e)})")
except ValueError as e:
    print(f"Erro: Digite apenas números válidos. ({type(e)})")
else:
    print(f"Resultado: {resultado}")

# 2. Pesquisa em Dicionário
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
nome = input("Digite o nome para pesquisar a idade: ")
try:
    print(f"Idade de {nome}: {idades[nome]}")
except KeyError:
    print("Nome não encontrado")

# 3. Conversão de lista para float
def converter_para_float(lista):
    try:
        nova_lista = [float(item) for item in lista]
        return nova_lista
    except Exception as e:
        print(f"Ocorreu um erro: {type(e)}")
    finally:
        print("Fim da execução da função")
        
        def calcular_notas(testes, gabarito):
    notas_finais = []
    try:
        for teste in testes:
            nota = 0
            for i in range(len(teste)):
                if teste[i] not in ['A', 'B', 'C', 'D']:
                    raise ValueError(f"A alternativa {teste[i]} não é uma opção válida")
                if teste[i] == gabarito[i]:
                    nota += 1
            notas_finais.append(nota)
    except ValueError as e:
        return e
    else:
        return notas_finais

gabarito = ['D', 'A', 'B', 'C', 'A']
testes_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'], ['D', 'B', 'A', 'C', 'A']]
print(f"Resultado: {calcular_notas(testes_ex, gabarito)}")

def verificar_pontuacao(lista_palavras):
    pontuacoes = [',', '.', '!', '?']
    for palavra in lista_palavras:
        for p in pontuacoes:
            if p in palavra:
                raise ValueError(f'O texto apresenta pontuações na palavra "{palavra}".')
    return "Texto limpo!"

# Teste
lista_nao_tratada = ['Python', 'é', 'programação', 'poderosa,', 'versátil']
try:
    print(verificar_pontuacao(lista_nao_tratada))
except ValueError as e:
    print(e)
    
    def divide_colunas(p, t):
    try:
        if len(p) != len(t):
            raise ValueError("A quantidade de elementos em cada lista é diferente.")
        
        resultado = []
        for pr, temp in zip(p, t):
            resultado.append(pr / temp)
        return resultado
        
    except ZeroDivisionError:
        return "Erro: Divisão por zero detectada na temperatura."
    except ValueError as e:
        return e
    except Exception as e:
        return f"Erro inesperado: {e}"

# Teste com erro de tamanho
pressoes = [100, 120, 140]
temperaturas = [20, 25, 30, 35]
print(divide_colunas(pressoes, temperaturas))
1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de try except para tratar diferentes tipos de erros, utilizou muito bem dicionários e funções para validar entradas e ainda compreendeu a importância de aplicar verificações personalizadas para garantir consistência nos dados e evitar falhas inesperadas.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!