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.
nameeNamesã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:
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:
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:
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:
- 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. - 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.
- 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:
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):
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.