O que é Indentação no Python? Entenda de Forma Simples

Tempo de leitura: 12 minutos
Homem pensando à frente de um notebook com código de programação

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

YouTube player

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")
Pronto para executar

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")
Pronto para executar

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")
Pronto para executar

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ços
Pronto para executar

Nã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á")
Pronto para executar

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")
Pronto para executar

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")
Pronto para executar

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")
Pronto para executar

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")
Pronto para executar

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
// JavaScript
if (idade > 18) {
    console.log("Adulto");
    console.log("Pode votar");
}

Python

idade = 20

# Python
if idade > 18:
    print("Adulto")
    print("Pode votar")
Pronto para executar

Python vs Java

Quando olhamos Python vs Java, vemos que Java também usa chaves e exige ponto e vírgula:

Java
// 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")
Pronto para executar

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}")
Pronto para executar

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")
Pronto para executar

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
]
Pronto para executar

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 * altura
Pronto para executar

Strings 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"
)
Pronto para executar

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")
Pronto para executar

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 media
Pronto para executar

Exercí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.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Logotipo do Python em tamanho grande centralizado acima do texto 'Args e Kwargs', em um design minimalista com fundo colorido sólido
    Fundamentos
    Foto do Leandro Hirt

    Args e Kwargs em Python: Guia Completo

    Você já se deparou com funções que aceitam um número variável de argumentos? Ou já viu aqueles estranhos *args e

    Ler mais

    Tempo de leitura: 11 minutos
    19/01/2026
    Ilustração minimalista do logotipo da linguagem de programação Python ao lado do texto REGEX em fundo neutro
    Fundamentos
    Foto do Leandro Hirt

    Regex Python: Tudo Sobre Expressões Regulares

    Se você já tentou encontrar padrões específicos em textos, validar formatos de email ou extrair informações de documentos, provavelmente já

    Ler mais

    Tempo de leitura: 12 minutos
    05/01/2026
    Logo do Python, texto TXT e ícone de bloco de notas representando arquivos de texto
    Fundamentos
    Foto do Leandro Hirt

    Como Ler Arquivos TXT no Python

    Trabalhar com arquivos de texto é uma das tarefas mais comuns na programação. Aprender como ler arquivo TXT no Python

    Ler mais

    Tempo de leitura: 14 minutos
    24/12/2025
    Comparação visual entre Python 2 e Python 3 com ícones minimalistas
    Fundamentos
    Foto do Leandro Hirt

    Python 2 vs Python 3: Principais Diferenças

    Se você está começando a estudar Python ou já trabalha com a linguagem, provavelmente já se deparou com uma dúvida

    Ler mais

    Tempo de leitura: 20 minutos
    22/12/2025
    Pessoa pensando com um monitor desfocado ao fundo
    Fundamentos
    Foto do Leandro Hirt

    Tipos de Dados em Python: int, float, str, list e dict

    Aprenda tudo sobre os principais tipos de dados em Python: int, float, str, list e dict. Guia completo com exemplos

    Ler mais

    Tempo de leitura: 14 minutos
    21/12/2025
    Pessoa usando tablet com caneta digital para planejar tarefas em checklist, representando organização, planejamento e produtividade digital.
    Fundamentos
    Foto do Leandro Hirt

    Como Ordenar Listas no Python (Sort vs Sorted)

    Você já ficou confuso sobre quando usar sort() ou sorted() para organizar suas listas em Python? Não está sozinho. Esses

    Ler mais

    Tempo de leitura: 12 minutos
    20/12/2025