Módulo 3 - Seu primeiro programa em Python

Erros de sintaxe sem pânico: lendo o que o Python diz

10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Provocar e corrigir os três erros mais comuns do iniciante.
  • Localizar linha, seta e tipo dentro de uma mensagem de erro.
  • Diferenciar SyntaxError de NameError na prática.
  • Aplicar o ciclo ler-corrigir-rodar diante de qualquer erro.

Os três tropeços clássicos da primeira semana

No módulo 1 você quebrou um código de propósito e sobreviveu. Agora vamos organizar esse conhecimento, porque três erros específicos respondem pela maioria dos sustos da primeira semana, e conhecê-los pelo nome tira o mistério. Todos os exemplos abaixo estão errados de propósito; digite cada um no Playground e veja a reclamação de perto.

print("Bem-vindos ao curso!)

# ERRADO de propósito: a aspa dupla abriu e nunca fechou.
# SyntaxError: unterminated string literal (detected at line 1)

Tropeço 1: aspa sem fechar. O Python avisa que a string ficou aberta.

print("Bem-vindos ao curso!"

# ERRADO de propósito: o parêntese abriu e nunca fechou.
# SyntaxError: '(' was never closed

Tropeço 2: parêntese esquecido. A mensagem diz qual símbolo ficou sem par.

Print("Bem-vindos ao curso!")

# ERRADO de propósito: print se escreve com p minúsculo.
# NameError: name 'Print' is not defined. Did you mean: 'print'?

Tropeço 3: maiúscula indevida. Repare que aqui o tipo muda: é NameError, não SyntaxError.

O terceiro caso merece um comentário. Print com maiúscula não é erro de escrita: a frase está gramaticalmente válida, então o interpretador começa a executar. O problema estoura na hora de procurar o nome Print, que não existe, porque o Python diferencia maiúsculas de minúsculas. Por isso o tipo é NameError, nome não definido. E olhe a gentileza do Python moderno: ele ainda sugere, você quis dizer print?

Anatomia da mensagem: linha, seta e tipo

Mensagem de erro parece um bloco assustador de texto em inglês, mas tem estrutura fixa, e você só precisa de três informações dela. Veja uma mensagem real, gerada por um arquivo com aspa sem fechar na linha 2, e o mapa das partes.

  File "cartao.py", line 2
    print("Sou estudante de Python
          ^
SyntaxError: unterminated string literal (detected at line 2)

Uma mensagem de erro completa do Python 3.12. Três pistas: o arquivo e a linha, a seta e o tipo.

Parte da mensagemO que ela dizNo exemplo acima
File e lineEm qual arquivo e em qual linha está o problemacartao.py, linha 2
A linha reproduzidaO Python copia a linha suspeita para você verprint("Sou estudante de Python
A seta (^)Aponta o ponto exato, ou o mais próximo, do tropeçologo depois da aspa que abriu
O tipo e a descriçãoO nome do erro e um resumo do motivoSyntaxError: string não terminada

O mapa da mensagem de erro. Com linha, seta e tipo, a correção quase se resolve sozinha.

Uma honestidade importante: a seta acerta o ponto exato na maioria das vezes, mas não sempre. Um parêntese esquecido, por exemplo, só é sentido pelo Python linhas depois, quando ele percebe que a conta não fecha. Se a linha apontada parecer inocente, olhe também a linha de cima. Esse pequeno ceticismo economiza muitos minutos de encarar a linha errada.

O ciclo ler-corrigir-rodar

Conhecidos os erros e a mensagem, falta o método. Diante de qualquer erro, o caminho é um ciclo de três passos: ler a mensagem procurando linha, seta e tipo; corrigir apenas o que a mensagem aponta; rodar de novo. Se aparecer outro erro, sem drama: repete o ciclo. Programas reais às vezes escondem dois ou três tropeços em fila, e cada rodada revela o próximo.

  1. LER: encontre o número da linha, a seta e o tipo do erro na mensagem.
  2. CORRIGIR: mexa só na linha apontada (ou na de cima, se ela parecer inocente). Nada de reescrever o programa inteiro.
  3. RODAR: execute de novo. Funcionou? Siga em frente. Novo erro? Volte ao passo 1.

O inimigo desse ciclo é o impulso de apagar tudo e recomeçar do zero, que parece produtivo e não é: joga fora o que estava certo junto com o que estava errado, e não ensina nada. Corrigir cirurgicamente, guiado pela mensagem, é mais rápido e treina exatamente a leitura de erro que separa quem progride de quem trava. O módulo 14 aprofunda esse tema com os erros de execução; a base é a que você acabou de montar.

Feche a aula com um exercício de dessensibilização: no Playground, provoque os três tropeços clássicos, um por vez, e corrija cada um usando o ciclo. Aspa sem fechar, parêntese sem par, Print maiúsculo. Ao final, você terá visto e consertado, em ambiente seguro, os erros que respondem pela maior parte da frustração dos iniciantes. Susto visto de perto encolhe.

Teste rápido

Ao executar Print("Oi") com P maiúsculo, o que o Python responde?

Perguntas frequentes

Errar muito no começo é sinal de que estou indo mal?
É sinal de que você está programando de verdade. Erros de sintaxe acompanham qualquer pessoa que digita código, do primeiro dia à aposentadoria; o que muda com a experiência é a velocidade de leitura e correção. O objetivo desta aula é encurtar esse tempo, não zerar os erros.
Qual a diferença entre SyntaxError e NameError, em uma frase?
SyntaxError é frase mal escrita: o Python nem começa a executar. NameError é frase bem escrita usando um nome que não existe: o Python executa até tropeçar na palavra desconhecida. Aspas e parênteses geram o primeiro; Print maiúsculo gera o segundo.
Por que o Python não corrige sozinho um erro óbvio?
Porque adivinhar é perigoso. Num programa grande, uma correção automática errada poderia mudar o comportamento em silêncio, e erro silencioso é o pior tipo que existe. O Python prefere parar e perguntar. A sugestão Did you mean é o máximo de ajuda que ele dá: aponta, mas não decide por você.
A seta da mensagem de erro sempre aponta o lugar certo?
Quase sempre, mas não é garantido. Erros de fechamento, como parêntese ou aspa abertos, às vezes só são percebidos linhas depois do ponto real. Regra prática: se a linha apontada parecer correta, examine a linha anterior. Nas versões recentes do Python as mensagens melhoraram bastante nisso.
Vale usar inteligência artificial para entender uma mensagem de erro?
Para explicar, vale; para consertar por você, não nesta fase. Pedir que uma IA traduza a mensagem acelera o aprendizado. Colar o código e pedir a correção pronta pula exatamente o treino de leitura que esta aula ensina, e essa habilidade não tem substituto mais adiante.
O que é o traceback que aparece em alguns erros?
É o relatório de percurso que o Python imprime nos erros de execução, mostrando o caminho até o problema. Nos programas de uma linha ele é curtinho; em programas com funções, cresce. Você vai destrinchá-lo no módulo 14; por agora, procure as mesmas pistas de sempre: linha e tipo.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.