Quando você começa a aprender a programar em Python, uma das primeiras coisas que chama atenção é a indentação. Talvez você já tenha ouvido alguém dizer que Python é diferente por causa disso. Mas, afinal, o que é indentação no Python? Por que ela é tão importante? E como você deve usá-la para evitar erros no seu código?
Neste artigo, vamos explicar tudo isso com uma linguagem fácil e exemplos simples. Mesmo quem nunca programou antes vai entender o que é indentação no Python e como ela funciona.
Para começar, que tal ver na prática? O vídeo abaixo explica de forma rápida e clara o que é a indentação e por que ela é fundamental em Python. Dê o play!
Canal: Dev Aprender | Jhonatan de Souza
O Que Significa Indentação em Python
Indentação é o espaço em branco que você coloca no começo de uma linha de código. Em termos simples, é quando você "empurra" algumas linhas para a direita usando espaços ou a tecla Tab. Esse recuo serve para mostrar que determinados comandos fazem parte de um mesmo grupo ou bloco.
Imagine que você está fazendo uma lista de compras. Se escrever tudo no mesmo nível, fica difícil saber o que pertence a cada categoria. Mas se você organizar assim:
- Frutas
- Maçã
- Banana
- Laranja
- Verduras
- Alface
- Tomate
Fica claro que maçã, banana e laranja pertencem ao grupo "Frutas". No Python, a lógica de programação funciona exatamente assim. A indentação mostra quais comandos estão dentro de uma estrutura, como um if, um for ou uma função.
Por Que Python Usa Indentação
Diferente de outras linguagens como C, Java ou JavaScript, que usam chaves {} para delimitar blocos de código, Python escolheu um caminho diferente. A linguagem foi criada por Guido van Rossum com o objetivo de ser simples e legível. Em vez de adicionar símbolos extras, Python usa a própria formatação visual do código para definir sua estrutura.
Essa escolha torna o código Python naturalmente mais limpo e fácil de ler. Você não precisa se preocupar em abrir e fechar chaves, nem em colocar ponto e vírgula no final de cada linha. O próprio espaçamento já conta a história da estrutura do programa.
Essa característica pode parecer estranha no começo. Mas com o tempo, você percebe que ela força você a escrever código organizado desde o início. Não há como "esconder" código bagunçado em Python, pois a indentação deixa tudo visível.
Como Funciona a Indentação na Prática
A indentação define onde um bloco de código começa e termina. Um bloco é um conjunto de comandos que são executados juntos, como parte de uma mesma estrutura. Vamos ver alguns exemplos práticos para entender melhor.
Exemplo com Condicionais
Quando você usa uma estrutura if, elif e else, a indentação mostra quais comandos serão executados em cada caso:
Python
idade = 20
if idade >= 18:
print("Você é maior de idade")
print("Pode votar nas eleições")
print("Programa finalizado")Nesse exemplo, as duas linhas com print que estão indentadas só serão executadas se a condição idade >= 18 for verdadeira. Já o último print, que não está indentado, sempre será executado, independente da condição.
Exemplo com Loops
Em loops em Python, a indentação define quais comandos serão repetidos:
Python
for i in range(3):
print(f"Repetição número {i}")
print("Ainda dentro do loop")
print("Fora do loop")Os dois primeiros prints estão indentados, então eles se repetem três vezes. O último print não está indentado, então ele só executa uma vez, após o loop terminar.
Exemplo com Funções
Ao criar funções em Python, todo o código da função precisa estar indentado:
Python
def saudacao(nome):
mensagem = f"Olá, {nome}!"
print(mensagem)
return mensagem
saudacao("Maria")As três linhas dentro da função estão indentadas. A última linha, que chama a função, não está indentada porque não faz parte da definição da função.
Regras Importantes da Indentação
Para usar a indentação corretamente em Python, você precisa seguir algumas regras básicas. Essas regras não são complicadas, mas precisam ser respeitadas para que seu código funcione.
Use Sempre a Mesma Quantidade de Espaços
Todas as linhas dentro de um mesmo bloco precisam ter exatamente a mesma quantidade de espaços. Se você começar com 4 espaços, todas as outras linhas daquele bloco também precisam ter 4 espaços.
Python
# CORRETO
if True:
print("Primeira linha")
print("Segunda linha")
# ERRADO
if True:
print("Primeira linha")
print("Segunda linha") # Quantidade diferente de espaçosNão Misture Espaços e Tabs
Essa é uma das regras mais importantes. Nunca misture espaços normais com a tecla Tab no mesmo arquivo. Embora pareçam iguais visualmente, o Python os trata de forma diferente. Isso pode causar erros muito difíceis de encontrar.
A recomendação oficial é usar sempre 4 espaços para cada nível de indentação. Configure seu editor de código para inserir 4 espaços quando você pressionar a tecla Tab. Assim você evita problemas.
Use Dois Pontos Antes de Indentar
Sempre que você for começar um bloco indentado, a linha anterior precisa terminar com dois pontos (:). Isso acontece com if, for, while, def, class e outras estruturas.
Python
idade = 20
if idade > 18: # Dois pontos aqui
print("Adulto")
for i in range(10): # Dois pontos aqui
print(i)
def minha_funcao(): # Dois pontos aqui
print("Olá")Níveis de Indentação
Você pode ter blocos de código dentro de outros blocos. Cada vez que você cria um novo bloco interno, adiciona mais um nível de indentação. Veja esse exemplo com for em Python:
Python
for i in range(3):
print(f"Número externo: {i}")
for j in range(2):
print(f" Número interno: {j}")
print("Fim da iteração interna")Neste caso, temos três níveis:
- Nível 0: A primeira linha do for externo (sem indentação)
- Nível 1: Os prints e o for interno (4 espaços)
- Nível 2: O print dentro do for interno (8 espaços)
Cada nível adiciona mais 4 espaços. Isso cria uma hierarquia visual clara que mostra exatamente como o código está organizado.
Erros Comuns de Indentação
Quando você erra a indentação, o Python mostra um erro chamado IndentationError. Esse é um dos erros comuns iniciantes em Python. Vamos ver os casos mais frequentes.
IndentationError: Expected an Indented Block
Esse erro acontece quando você esquece de indentar um bloco que deveria estar indentado:
Python
idade = 20
# ERRADO
if idade > 18:
print("Adulto") # Faltou a indentação
# CORRETO
if idade > 18:
print("Adulto")IndentationError: Unindent Does Not Match
Esse erro aparece quando você mistura diferentes quantidades de espaços:
Python
idade = 20
# ERRADO
if idade > 18:
print("Primeira linha") # 4 espaços
print("Segunda linha") # 6 espaços
# CORRETO
if idade > 18:
print("Primeira linha")
print("Segunda linha")IndentationError: Unexpected Indent
Esse erro ocorre quando você indenta uma linha que não deveria estar indentada:
Python
# ERRADO
print("Olá")
print("Mundo") # Indentação sem motivo
# CORRETO
print("Olá")
print("Mundo")Configurando Seu Editor de Código
A melhor forma de evitar problemas com indentação é configurar seu editor corretamente. Seja usando o PyCharm, VS Code ou o IDLE do Python, todos eles têm opções para ajudar.
Configurações Recomendadas
- Ative a indentação automática: o editor adiciona a indentação quando você pressiona Enter
- Configure a tecla Tab para inserir 4 espaços
- Ative a visualização de espaços em branco para ver exatamente quantos espaços você tem
- Use um autoformatador como o Black ou autopep8 para corrigir a indentação automaticamente
- Ative avisos de indentação inconsistente
Com essas configurações, fica muito mais fácil manter a indentação correta enquanto você programa. O editor faz a maior parte do trabalho por você.
Comparação com Outras Linguagens
Para quem vem de outras linguagens de programação, a indentação obrigatória do Python pode parecer estranha. Vamos comparar com algumas linguagens populares.
Python vs JavaScript
Em Python vs JavaScript, a principal diferença está nas chaves. JavaScript usa {} para delimitar blocos, enquanto Python usa indentação:
// JavaScript
if (idade > 18) {
console.log("Adulto");
console.log("Pode votar");
}Python
idade = 20
# Python
if idade > 18:
print("Adulto")
print("Pode votar")Python vs Java
Quando olhamos Python vs Java, vemos que Java também usa chaves e exige ponto e vírgula:
// Java
if (idade > 18) {
System.out.println("Adulto");
System.out.println("Pode votar");
}Python
idade = 20
# Python
if idade > 18:
print("Adulto")
print("Pode votar")A vantagem do Python é a simplicidade. Você não precisa se lembrar de fechar chaves ou colocar ponto e vírgula. O código fica mais limpo e direto ao ponto.
Boas Práticas de Indentação
Para escrever código Python profissional, siga estas boas práticas recomendadas pela comunidade e pelo guia de estilo oficial PEP8 Python:
- Use sempre 4 espaços por nível de indentação
- Nunca misture tabs e espaços no mesmo arquivo
- Mantenha consistência em todo o projeto
- Evite linhas muito longas: se uma linha passar de 79 caracteres, quebre em várias linhas
- Alinhe elementos quando quebrar linhas longas
- Use ferramentas de formatação automática
- Revise seu código antes de executar
Indentação em Estruturas Complexas
À medida que seus programas ficam mais complexos, você vai trabalhar com estruturas que exigem vários níveis de indentação. Vamos ver alguns exemplos práticos.
Classes e Métodos
Quando você trabalha com Python orientado a objetos, precisa indentar classes e seus métodos:
Python
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
def apresentar(self):
if self.idade >= 18:
status = "adulto"
else:
status = "menor de idade"
print(f"Olá, sou {self.nome} e sou {status}")Try-Except
No tratamento de erros com try except em Python, cada bloco tem seu próprio nível de indentação:
Python
try:
numero = int(input("Digite um número: "))
resultado = 10 / numero
print(f"Resultado: {resultado}")
except ValueError:
print("Você não digitou um número válido")
except ZeroDivisionError:
print("Não é possível dividir por zero")
finally:
print("Operação finalizada")Compreensão de Listas
Em list comprehension no Python, você pode quebrar linhas longas mantendo a indentação:
Python
# Em uma linha
numeros_pares = [x for x in range(20) if x % 2 == 0]
# Quebrado em várias linhas
numeros_pares = [
x
for x in range(20)
if x % 2 == 0
]Indentação em Diferentes Contextos
A indentação também é importante em outros contextos do Python, não apenas em estruturas de controle.
Docstrings
Quando você escreve docstrings Python, a indentação também importa:
Python
def calcular_area(base, altura):
"""
Calcula a área de um retângulo.
Parâmetros:
base (float): A base do retângulo
altura (float): A altura do retângulo
Retorna:
float: A área calculada
"""
return base * alturaStrings Longas
Ao trabalhar com strings em Python que são muito longas, você pode usar indentação para organizar:
Python
mensagem_longa = (
"Esta é uma mensagem muito longa "
"que precisa ser quebrada em várias linhas "
"para facilitar a leitura do código"
)Ferramentas para Ajudar com Indentação
Existem várias ferramentas que podem ajudar você a manter a indentação correta e seguir as melhores práticas do Python.
Black
O Black é um formatador automático de código Python. Ele corrige toda a indentação do seu código automaticamente, seguindo as regras da PEP 8. Basta rodar o comando e seu código fica formatado perfeitamente.
Pylint e Flake8
Essas ferramentas analisam seu código e avisam quando encontram problemas de indentação ou outras questões de estilo. São muito úteis para aprender as boas práticas.
Autopep8
Similar ao Black, o autopep8 corrige automaticamente problemas de formatação, incluindo indentação. É uma ótima opção para quem está começando.
Indentação em Projetos Grandes
Quando você trabalha em projetos maiores, manter a indentação consistente se torna ainda mais importante. Veja algumas dicas para projetos de médio e grande porte.
Use um Arquivo de Configuração
Crie arquivos como .editorconfig ou .pylintrc no seu projeto. Esses arquivos definem as regras de indentação que todos os desenvolvedores devem seguir. Assim, quando alguém abre o projeto, o editor já usa as configurações corretas.
Automatize a Verificação
Configure ferramentas de integração contínua para verificar a indentação automaticamente. Assim, se alguém enviar código com indentação errada, o sistema avisa antes de aceitar as mudanças.
Documente o Padrão
Deixe claro no README do projeto qual é o padrão de indentação usado. Por exemplo: "Este projeto usa 4 espaços para indentação, seguindo a PEP 8".
Dicas para Iniciantes
Se você está começando a aprender Python, aqui vão algumas dicas específicas sobre indentação que vão facilitar sua vida.
- Comece simples: escreva programas pequenos primeiro para se acostumar com a indentação
- Use um editor com suporte a Python: ele vai colorir seu código e mostrar os níveis de indentação
- Pratique digitando código: não apenas copie e cole, digite você mesmo para treinar
- Quando der erro: leia a mensagem com atenção, ela geralmente indica exatamente onde está o problema
- Compare com exemplos: veja como código bem escrito usa indentação e tente reproduzir
- Peça ajuda: se não entender um erro de indentação, pergunte em fóruns ou comunidades
- Seja paciente: com o tempo, a indentação vira hábito e você nem pensa mais nisso
Exercícios Práticos
A melhor forma de aprender indentação é praticando. Aqui estão alguns exercícios Python para iniciantes focados em indentação.
Exercício 1: Corrigir Indentação
Corrija a indentação deste código:
Python
for i in range(5):
print(i)
if i % 2 == 0:
print("Par")
else:
print("Ímpar")Exercício 2: Identificar Erros
Encontre os erros de indentação:
Python
def calcular_media(notas):
soma = 0
for nota in notas:
soma += nota
media = soma / len(notas)
return mediaExercício 3: Criar Estrutura
Crie uma função que use pelo menos três níveis de indentação diferentes. Por exemplo, uma função com um if dentro de um for.
Perguntas e Respostas (FAQ)
1. O que é indentação em Python?
É o espaço vazio no início de uma linha de código que indica blocos em Python
2: Por que a indentação é importante em Python?
Porque define o começo e fim de blocos de código e, se for incorreta, o Python gera erro.
3: Quantos espaços usar por nível de indentação?
O recomendado é usar quatro espaços por nível.
4: Posso misturar espaços e tabs?
Não. Misturar pode causar erros.
5: O que acontece quando a indentação está errada?
O Python levanta um erro chamado IndentationError.
6: A indentação serve apenas para estética?
Não. Em Python ela faz parte da sintaxe e determina o funcionamento do código.
7. O que é IndentationError?
É um erro que acontece quando a indentação do seu código está incorreta. Pode ser por espaços faltando, sobrando ou inconsistentes entre linhas.








