Ferramenta de Formatação Python
O que é formatação Python?
O formatador Python reorganiza código Python com indentação, quebras de linha e estrutura legível. Em Python, indentação faz parte da sintaxe, então código mal colado ou com formatos misturados pode ser mais que feio: pode mudar comportamento ou causar erros. A ferramenta ajuda com scripts, trechos de notebooks, código gerado, exemplos de estudo, revisões e pequenos refactors, deixando funções, classes, imports, listas, dicionários e expressões aninhadas mais fáceis de examinar. Formatação não corrige bugs de lógica, erros de tipo, dependências ausentes, problemas de ambiente nem uso incorreto de APIs. Em projetos reais, alinhe com Black, Ruff, isort ou regras da equipe.
Como Usar
Como usar
- Cole ou digite o código Python na caixa de entrada à esquerda
- Selecione o tamanho da indentação (2 espaços, 4 espaços ou Tab)
- Clique em 'Formatar' para embelezar o código, ou 'Minificar' para comprimir
- Veja os resultados à direita (com destaque de sintaxe)
- Clique em 'Copiar' para copiar para a área de transferência
Descrição das Opções
Dicas de Python
- Python é sensível a indentação, então inspecione os blocos de controle formatados antes de copiar o resultado de volta para um projeto.
- A formatação não executa verificações de tipo, importações ou testes. Use suas ferramentas Python normais para validação de comportamento e dependências.
Casos de uso
Princípio técnico
Python é uma das poucas linguagens mainstream que usa indentação em vez de chaves para definir blocos de código. Declarações consecutivas com a mesma indentação pertencem ao mesmo bloco; um espaço a mais ou a menos e a semântica muda. Esse design faz com que a estrutura visual do código corresponda à sua lógica, mas exige que o formatador identifique os níveis lógicos com precisão. O formatador primeiro escaneia o código com o módulo tokenize ou um lexer personalizado, tratando o espaço em branco inicial de cada linha como informação de indentação. Declarações dentro de colchetes (redondos, quadrados ou chaves) podem ocupar múltiplas linhas, caso em que a indentação é determinada pela profundidade dos colchetes em vez do espaço em branco inicial. Espaço em branco dentro de literais de string (triple-quote, aspas simples) não deve ser alterado, caso contrário o valor da string muda. O PEP 8 é o guia de estilo oficial do Python, especificando indentação de 4 espaços, comprimento máximo de linha de 79 caracteres, espaços ao redor de operadores, imports agrupados e convenções de nomenclatura. O Black é o principal exemplo da escola de formatadores sem configuração: ele força strings com aspas duplas, vírgulas finais e comprimento de linha de 88 caracteres, com regras estritas e não configuráveis. O yapf é mais próximo do estilo Google e é configurável.
- Semântica de indentação: Python usa espaço em branco inicial para decidir blocos de código; a mesma indentação significa o mesmo bloco, uma mudança de indentação altera o escopo
- Regras do PEP 8: indentação de 4 espaços, largura de linha de 79 caracteres, espaços ao redor de operadores, CapWords para nomes de classe, snake_case para nomes de funções
- Quebras de linha em colchetes: declarações dentro de colchetes (redondos, quadrados, chaves) podem quebrar, e a indentação é determinada pela profundidade dos colchetes em vez do espaço em branco inicial
- Limites de strings: espaço em branco dentro de strings triple-quote e docstrings não deve ser alterado, caso contrário quebra o conteúdo literal
- Estilo Black: zero configuração, não personalizável, força aspas duplas, vírgulas finais, 88 caracteres por linha, idêntico em todo o projeto
- Anotações de tipo: introduzidas no PEP 484; o formatador preserva o espaçamento adequado ao redor de -> tipos de retorno e parâmetros : anotações de tipo
Exemplos
Formatação de definições de função
Entrada: def add(a,b):
return a+b
def subtract(a,b):
return a-b
Saída:
def add(a, b):
return a + b
def subtract(a, b):
return a - bFormatação de list comprehensions
Entrada: result=[x*x for x in range(10) if x%2==0]
result2={k:v for k,v in items if v>0}
Saída:
result = [x * x for x in range(10) if x % 2 == 0]
result2 = {k: v for k, v in items if v > 0}Formatação de uma definição de classe
Entrada: class User:
def __init__(self,name,email):
self.name=name
self.email=email
def __repr__(self):
return f"User({self.name})"
Saída:
class User:
def __init__(self, name, email):
self.name = name
self.email = email
def __repr__(self):
return f"User({self.name})"Perguntas frequentes
Qual estilo Python ele usa?
A maioria das builds segue por padrão as convenções da PEP 8, frequentemente via Black: 88 colunas de largura de linha, strings com aspas duplas, sem ponto e vírgula no final. O Black é opinionado - ele tira a maioria dos botões de configuração para dar um estilo consistente em todo o projeto. autopep8 e yapf têm mais opções se você precisar de flexibilidade.
A indentação importa para o formatador?
Sim - a indentação em Python define a estrutura dos blocos. O formatador respeita os limites de bloco existentes; se a entrada tiver mistura de tabs/espaços ou níveis de recuo errados, o parsing falha antes mesmo da formatação rodar.
Ele corrige a ordem dos imports?
Black, autopep8 e yapf só lidam com espaços em branco. Para ordenar e agrupar imports, use isort (ou ruff --fix). Algumas páginas combinam os dois; leia a configuração para saber o que está realmente sendo aplicado.
Type hints são suportadas?
Sim em parsers modernos. Anotações de tipo em assinaturas de função, variáveis e atributos de classe (PEP 526, 484, 612) são formatadas corretamente. Sintaxes muito novas (sintaxe genérica da PEP 695 no 3.12+) precisam de um parser recente; builds antigas podem tropeçar.
Meu código é enviado para algum servidor?
Não. A formatação roda no seu navegador usando uma implementação JavaScript da AST do Python. O código colado não é transmitido.
O resultado vai bater com o black na minha CI?
Próximo, mas nem sempre idêntico. Versões diferentes do Black podem formatar de forma um pouco diferente (o Black atualiza as regras com frequência). Para consistência na CI, rode a mesma versão do Black local e na CI; encare esta página como uma checagem visual rápida.
Por que ele quebra linhas longas em várias linhas?
PEP 8 e Black miram em ≤88 caracteres por linha. Expressões longas, chamadas de função com muitos argumentos e cadeias de chamadas de método são quebradas em várias linhas para legibilidade. Ajuste a opção de largura de linha se sua equipe usa 100 ou 120.