Você executa um programa pequeno e recebe uma mensagem de erro que parece escrita para outra pessoa. Para quem está começando a programar, a reação comum é procurar o código completo já corrigido. Só que o erro também é uma pista: investigá-lo em etapas ensina a entender como o programa está sendo executado.
Leia a mensagem com calma
Comece localizando a linha mencionada e leia algumas linhas antes dela. Em Python, uma mensagem como SyntaxError costuma apontar um problema de sintaxe, enquanto NameError pode indicar que o programa encontrou um nome que não foi definido naquele contexto. A mensagem nem sempre identifica sozinha a causa, mas ajuda a reduzir o trecho que você precisa examinar.
Confira detalhes pequenos: dois-pontos no fim de uma condição, parênteses sem fechamento, recuo inconsistente ou uma variável escrita de duas maneiras. Mude uma coisa por vez e execute novamente. Se alterar várias linhas ao mesmo tempo, fica mais difícil descobrir qual mudança resolveu ou criou o problema.
Reduza o problema
Se o erro persistir, simplifique o programa até restar o menor trecho que ainda apresenta o comportamento inesperado. Você pode imprimir valores intermediários para conferir o que a função recebeu e o que está devolvendo. Esse método funciona melhor do que olhar o código inteiro sem uma pergunta específica.
Registre o que descobriu
Ao resolver o problema, escreva uma nota curta: qual era o sintoma, qual foi a causa e como você confirmou a correção. Em outra sessão, tente reconstruir a solução sem copiar a nota linha por linha. Aos poucos, mensagens de erro deixam de ser apenas interrupções e passam a fazer parte do seu processo de aprendizagem.
