Menu

Sintaxe do Python: indentação, linhas, dois pontos e as regras que importam

O conjunto mínimo de regras de sintaxe com que o Python se importa — indentação, quebras de linha, dois pontos e sensibilidade a maiúsculas — explicadas sem jargão.

O livro de regras mais curto possível

Python tem fama de ser legível, e a maior parte disso vem de quão poucas regras de sintaxe a linguagem realmente tem. Dá para caber as que importam numa página só:

  • Uma instrução por linha.
  • Indentação define a estrutura — sem chaves, sem end.
  • Maiúsculas importam. name e Name são coisas diferentes.
  • : abre um bloco; as próximas linhas indentadas abaixo são o corpo do bloco.
  • # começa um comentário.

É basicamente isso. O resto é variáveis, funções e costumes da biblioteca padrão, que você pega pelo caminho. Vamos passar por essas cinco regras com contexto suficiente para elas deixarem de parecer regras e começarem a parecer o formato natural da linguagem.

Uma instrução por linha

Uma instrução é uma ordem completa — "imprima isso", "some estes", "atribua aquilo". Em Python, cada instrução vai na sua própria linha:

main.py
Output
Click Run to see the output here.

Três instruções, três linhas. Não precisa de ponto e vírgula no fim, e a maior parte do código Python não usa. (Você pode colocar duas instruções numa linha com ponto e vírgula, mas isso é considerado estilo ruim. Não faça.)

Se uma linha realmente precisa ser longa, você pode quebrar num ponto natural dentro de parênteses, colchetes ou chaves — o Python não reclama:

main.py
Output
Click Run to see the output here.

Ou, menos comum, termine uma linha com barra invertida para continuar. Prefira o truque dos parênteses quando puder — é o que a maioria das bases de código usa.

Indentação é estrutural

Aqui vai a parte que derruba iniciantes. Em Python, o espaço em branco no começo de uma linha tem significado. Ele diz ao Python quais linhas pertencem juntas.

Olhe um if simples:

main.py
Output
Click Run to see the output here.

As duas linhas depois de if hour < 12: estão indentadas com quatro espaços. O Python lê essa indentação como "estas duas linhas são o corpo do if". O último print volta para a margem esquerda, então o Python entende como fora do if.

Se você tirar a indentação, o if quebra. Se você indentar um espaço a mais, o if quebra. O Python é rigoroso aqui porque a indentação é a estrutura — não tem { ou end para sustentar.

Algumas regras que caem disso:

  1. Escolha quatro espaços por nível de indentação e mantenha. É a convenção do PEP 8 e o padrão de todo editor para arquivos .py.
  2. Não misture tabs e espaços. O Python 3 rejeita um arquivo que usa os dois. Editores modernos convertem tabs em espaços automaticamente ao salvar; garanta que o seu esteja configurado assim.
  3. Erros de indentação vão acontecer. Quando acontecerem, a mensagem de erro te diz o número da linha. Vá conferir se o espaço em branco do começo daquela linha é igual ao dos irmãos.

Os dois pontos abrem um bloco

Toda construção que cria um bloco aninhado — if, else, for, while, def, class, with, try — termina a linha de cabeçalho com dois pontos. As próximas linhas, indentadas, formam o corpo do bloco:

main.py
Output
Click Run to see the output here.

Duas coisas para notar: os dois pontos no fim do cabeçalho, e a indentação de quatro espaços nas linhas do corpo. Se você esquecer os dois pontos, o Python vai te avisar com algo como SyntaxError: expected ':'. Esse erro é inequívoco — conserte a pontuação faltando e você está bem.

Sensibilidade a maiúsculas

O Python trata Name, name e NAME como três coisas completamente separadas. Isso se aplica a:

  • Suas próprias variáveis e funções.
  • Embutidos como print, len, True, False, None.
  • Nomes de módulos e atributos.

Isso geralmente só morde quando você capitaliza algo sem querer. True é o valor booleano verdadeiro; true é uma variável indefinida que gera NameError. Print(...) não é a função print — é um typo.

Se um erro diz "name 'X' is not defined" e você jura que definiu, confira a capitalização primeiro. Está errada nove vezes em dez.

Comentários com #

Qualquer coisa depois de # numa linha é comentário — o Python ignora completamente. Comentários são notas para leitores futuros (incluindo você no futuro):

main.py
Output
Click Run to see the output here.

O Python não tem sintaxe de comentário de múltiplas linhas. Se você precisa de várias linhas, use várias linhas com #. (Você vai ver de vez em quando strings com aspas triplas usadas como pseudo-comentário — isso é outra coisa chamada docstring, e vamos cobrir quando falarmos de funções.)

Palavras reservadas

Algumas palavras estão fora de alcance como nomes de variáveis porque o Python usa para si: if, else, for, while, def, class, return, import, from, as, pass, break, continue, True, False, None, and, or, not, in, is, lambda, try, except, finally, raise, with, yield, global, nonlocal, async, await. Você não precisa decorar essa lista. Se tentar usar uma, o Python vai reclamar na hora.

Você sabe o suficiente para ler qualquer arquivo Python

Cada regra que você acabou de ler vale para todo arquivo Python — de um script de duas linhas a um projeto de cem mil linhas. O resto da linguagem é construído em cima dessas cinco ideias. Se um arquivo parecer confuso, a correção é quase sempre olhar a indentação primeiro. A indentação te diz o que o código está fazendo, antes mesmo de você ler o que as linhas dizem.

A seguir: comentários, em um pouco mais de profundidade — e docstrings, que é como o Python lida com documentação de funções e módulos.

Perguntas frequentes

Por que o Python se importa com indentação?

O Python usa indentação para descobrir quais linhas pertencem juntas. Onde outras linguagens envolvem grupos de código em chaves { }, o Python usa espaço em branco consistente no começo. É menos poluição visual, mas significa que você não pode ser relaxado com o espaçamento.

Quantos espaços devo usar para indentar em Python?

Quatro espaços por nível é o padrão da comunidade (PEP 8). A maioria dos editores insere quatro espaços quando você aperta Tab num arquivo Python. O número exato importa menos do que ser consistente — misturar indentação de dois e de quatro espaços no mesmo bloco é um erro comum.

Python diferencia maiúsculas e minúsculas?

Sim. Name, name e NAME são três variáveis diferentes. Nomes embutidos como print e True precisam ser escritos exatamente como mostrado — True funciona, true gera um erro.

Aprenda a programar com o Coddy

COMEÇAR