Desafio concluído conforme link abaixo:
https://colab.research.google.com/drive/1nFG0M0Z7QtZPAgS45HcNhc2Pei3XwgUq?usp=sharing
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!