Desafio concluído conforme link abaixo:
https://colab.research.google.com/drive/1nFG0M0Z7QtZPAgS45HcNhc2Pei3XwgUq?usp=sharing
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Desafio concluído conforme link abaixo:
https://colab.research.google.com/drive/1nFG0M0Z7QtZPAgS45HcNhc2Pei3XwgUq?usp=sharing
Olá, Deivide! Como vai?
Parabéns por concluir o desafio e por já compartilhar o seu notebook do Google Colab com a flag de compartilhamento configurada corretamente (usp=sharing)! Isso facilita demais para que toda a comunidade do fórum consiga abrir, rodar e aprender com o seu código.
Como você é Analista de Inteligência de Vendas, dominar o capítulo de Tratamento de Exceções (try-except) em Python é um divisor de águas na sua rotina. No dia a dia de BI e análise de dados de vendas, nós lidamos o tempo todo com arquivos externos (CSV, Excel), conexões com APIs de CRMs e inputs manuais de planilhas de vendedores que, frequentemente, vêm com "ruídos" (linhas em branco, textos onde deveriam ser números, divisões por zero, etc.).
Para agregar valor ao seu post e conectar com a sua realidade profissional, vamos analisar como as estruturas que você praticou no desafio salvam nossos relatórios de vendas de "quebrarem" no meio da execução.
try-except brilha na Inteligência de Vendas?Imagine que você criou um script em Python para automatizar o cálculo do Ticket Médio ou da Taxa de Conversão das equipes regionais com base em uma planilha. Veja a diferença entre um código desprotegido e o código com as boas práticas do desafio:
Se a planilha contiver uma filial nova que ainda não realizou nenhuma venda no mês, a quantidade de vendas será 0. O Python vai estourar um erro de ZeroDivisionError e interromper a automação na hora, deixando você sem o restante do relatório.
Utilizando a lógica de exceções que você aplicou no seu projeto, nós contornamos o erro matematicamente e garantimos que o script continue rodando até o final:
dados_vendas = [
{"filial": "São Paulo", "faturamento": 150000, "vendas": 120},
{"filial": "Rio de Janeiro", "faturamento": 0, "vendas": 0}, # Filial sem vendas!
{"filial": "Belo Horizonte", "faturamento": 85000, "vendas": 70}
]
for dados in dados_vendas:
try:
ticket_medio = dados["faturamento"] / dados["vendas"]
except ZeroDivisionError:
# Tratamos a exceção para a automação não quebrar
ticket_medio = 0.0
except KeyError as erro:
print(f"Erro: A coluna {erro} está faltando nos dados da filial {dados['filial']}.")
continue
print(f"Filial: {dados['filial']} | Ticket Médio: R$ {ticket_medio:.2f}")
else e finallyNo desafio do curso, além do except, nós somos introduzidos aos blocos complementares:
else: Executa o código apenas se tudo correu bem no try (ótimo para garantir que um e-mail com o relatório só seja enviado se o cálculo deu certo).finally: Executa de qualquer forma, independentemente de ter dado erro ou não (perfeito na engenharia de dados para fechar a conexão com o banco de dados SQL ou fechar a planilha que foi aberta, evitando o consumo desnecessário de memória).Excelente iniciativa em documentar e subir o seu projeto estruturado no Colab. Essa habilidade de blindar o código contra falhas é o que diferencia scripts amadores de automações corporativas confiáveis. Continue com esse ótimo ritmo de estudos!
Espero que possa ter lhe ajudado!