Pular para o conteúdo
EasyCode

Como ler uma mensagem de erro em Python sem pânico (com exemplos reais)

Por Mattheus Moraes · Exemplos de código testados · Atualizado em 25 de outubro de 2026 · Leitura de 4 min

Resposta rápida

Para ler um erro em Python, comece pela última linha: ela diz o tipo do erro e o motivo. Depois olhe o número depois de line, que aponta a linha com problema, e os sinais ^, que marcam o trecho exato. Corrija uma coisa de cada vez e rode de novo. O erro não é uma bronca, é uma pista.

O erro é uma pista, não uma bronca

Quem programa vê erros todos os dias, e isso inclui profissionais com anos de experiência. A diferença entre quem está começando e quem já tem prática é que o experiente sabe ler a mensagem. Esse artigo ensina a leitura, com erros reais do Python.

Os exemplos mostram o nome programa.py no lugar do caminho completo do arquivo, que muda de computador para computador. A mensagem também pode variar um pouco entre versões do Python, mas a estrutura é a mesma.

A anatomia de um erro

Este programa tenta dividir por zero:

numero = 10
print(numero / 0)

E o Python responde assim:

Traceback (most recent call last):
  File "programa.py", line 2, in <module>
    print(numero / 0)
          ~~~~~~~^~~
ZeroDivisionError: division by zero

Leia de baixo para cima:

  1. Última linha: ZeroDivisionError: division by zero. O começo é o tipo do erro, e depois dos dois-pontos vem o motivo: houve uma divisão por zero.
  2. Linha do arquivo: line 2. O problema apareceu na linha 2.
  3. Trecho em destaque: os sinais ~ e ^ mostram a parte exata do código que causou o erro.
  4. Traceback: é o nome do relatório inteiro. Ele mostra o caminho percorrido até o erro, e quanto mais alto, mais antigo.

SyntaxError: faltou alguma coisa na escrita

Um erro de sintaxe acontece quando o Python não entende como a linha foi escrita, e por isso o programa nem começa a rodar. Aqui falta o dois-pontos no if:

idade = 18
if idade >= 18
    print("maior")
  File "programa.py", line 2
    if idade >= 18
                  ^
SyntaxError: expected ':'

A mensagem diz exatamente o que esperava: expected ':', ou seja, "esperava dois-pontos". O sinal ^ aponta onde ele devia estar. Repare que nesse tipo de erro não aparece a palavra Traceback.

IndentationError: o recuo está errado

No Python, o recuo faz parte da escrita. O código dentro de um for precisa estar mais para a direita:

for n in range(3):
print(n)
  File "programa.py", line 2
    print(n)
    ^^^^^
IndentationError: expected an indented block after 'for' statement on line 1

Tradução: "esperava um bloco com recuo depois do for da linha 1". A solução é adicionar quatro espaços antes do print.

NameError: o nome não existe

Acontece quando você usa um nome que o Python não conhece, quase sempre por erro de digitação:

nome = "Ana"
print(nmoe)
Traceback (most recent call last):
  File "programa.py", line 2, in <module>
    print(nmoe)
          ^^^^
NameError: name 'nmoe' is not defined

A mensagem diz que nmoe não está definido. Basta comparar com o nome que você criou: era nome.

TypeError: tipos que não combinam

Aqui o "5" está entre aspas, então é texto, e o Python não soma texto com número:

idade = "5"
print(idade + 3)
Traceback (most recent call last):
  File "programa.py", line 2, in <module>
    print(idade + 3)
          ~~~~~~^~~
TypeError: can only concatenate str (not "int") to str

Traduzindo: só dá para juntar texto (str) com outro texto, e não com um número inteiro (int). A correção é converter o texto em número com int(idade).

IndexError: a posição não existe

Listas contam as posições a partir do zero. Esta lista tem três itens, nas posições 0, 1 e 2, e o código pede a posição 5:

lista = [1, 2, 3]
print(lista[5])
Traceback (most recent call last):
  File "programa.py", line 2, in <module>
    print(lista[5])
          ~~~~~^^^
IndexError: list index out of range

"Índice fora do alcance" é a forma do Python dizer que essa posição não existe na lista.

O passo a passo para corrigir qualquer erro

  1. Leia a última linha e anote o tipo do erro.
  2. Vá até a linha indicada e olhe os sinais ^.
  3. Pense no que costuma causar aquele tipo de erro (veja os exemplos acima: dois-pontos, recuo, nome digitado errado, tipos misturados).
  4. Mude uma coisa de cada vez e rode de novo. Mudar três coisas juntas esconde o que resolveu.
  5. Se a mensagem mudou, você avançou. Leia a nova e repita.

Como pedir ajuda do jeito certo

Se não resolver, pedir ajuda faz parte do ofício. Para receber resposta rápida, mande: a mensagem de erro completa, o trecho do código que causa o erro (o menor possível), o que você esperava que acontecesse e o que já tentou. Isso ajuda quem responde e também te ajuda a pensar.

Provoque o erro e leia a mensagem

Rode o código abaixo. Depois troque nome por nmoe na segunda linha, rode de novo e leia a mensagem da última linha. Conserte e rode outra vez.

nome = "Ana"
print(nome)

Resultado esperado:

Ana

Errar de propósito é uma das melhores formas de treinar. Na versão com nmoe, você deve ver NameError: name 'nmoe' is not defined na última linha.

Treinar no editor do EasyCode

Perguntas frequentes

O que é traceback?

É o relatório que o Python mostra quando algo dá errado. Ele lista o caminho do código até o erro, com os arquivos, as linhas e, no final, o tipo e o motivo do erro.

Por que a mensagem de erro está em inglês?

O Python mostra as mensagens em inglês por padrão. Os nomes dos tipos, como NameError e TypeError, são os mesmos no mundo todo, o que ajuda na hora de pesquisar a solução.

Qual a diferença entre erro de sintaxe e erro de execução?

O erro de sintaxe acontece antes de o programa rodar, porque o código está escrito de um jeito que o Python não entende. O erro de execução acontece durante o programa, quando uma linha válida tenta fazer algo impossível, como dividir por zero.

Quais erros mais aparecem no começo?

Em geral SyntaxError, NameError, IndentationError e TypeError. Todos têm causas simples e se resolvem rápido depois que você aprende a ler a mensagem.

Fontes e para saber mais

Próximo passo da trilhaComo treinar lógica de programação online e de graça (método e exercícios)

Leia também

Gostou? Compartilhe: WhatsApp LinkedIn