ToolActToolAct

Ferramenta de Formatação Python

Entrada Python
Saída
Linhas: 1Caracteres: 0Bytes: 0
Linhas: 1Caracteres: 0

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

  1. Cole ou digite o código Python na caixa de entrada à esquerda
  2. Selecione o tamanho da indentação (2 espaços, 4 espaços ou Tab)
  3. Clique em 'Formatar' para embelezar o código, ou 'Minificar' para comprimir
  4. Veja os resultados à direita (com destaque de sintaxe)
  5. Clique em 'Copiar' para copiar para a área de transferência

Descrição das Opções

Tamanho da IndentaçãoEscolha entre indentação de 2 espaços, 4 espaços ou Tab. O PEP 8 recomenda 4 espaços.
FormatarEmbeleze o código com indentação e quebras de linha adequadas
MinificarRemove espaços em branco e comentários para reduzir o tamanho do arquivo

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

Limpar código Python colado preservando strings e comentáriosUse o formatador quando um snippet tem indentação irregular, linhas em branco extras ou espaços copiados de um chat, wiki ou issue. Ele protege strings entre aspas, blocos triple-quote e comentários antes de normalizar a indentação, então textos de documentação e anotações inline não são reescritos acidentalmente. A saída é o tipo de snippet que se encaixa em um README ou resposta do Stack Overflow sem acionar uma reformatação.
Detectar erros simples de brackets e strings antes de compartilhar códigoA ferramenta valida parênteses, colchetes, chaves e strings triple-quote não fechados antes de produzir a saída. Não é um interpretador Python completo nem substituto do Black, mas captura erros estruturais óbvios em exemplos pequenos, aulas e respostas de suporte. Combine o formatador com um linter real no CI para capturar problemas de lógica que o formatador não consegue ver.
Alternar entre saída legível e snippets compactos em uma linhaEscolha 2 espaços, 4 espaços ou tabs para a saída formatada, ou minifique o código em uma forma compacta separada por ponto e vírgula para demonstrações curtas e incorporações. O resultado pode ser copiado ou baixado como .py formatado ou .py minificado dependendo do modo selecionado. A forma minificada é conveniente para incorporar em one-liners de shell ou assinaturas curtas de e-mail.
Auditar f-strings e docstrings triple-quoteExecute f-strings aninhados, amostras de regex e docstrings triple-quote com blocos de código embutidos pelo formatador para verificar se chaves e aspas permanecem balanceadas. Indentação inesperada dentro de docstrings geralmente significa que o código-fonte tinha um triple-quote não fechado antes. Re-avalie o original com cuidado quando o formatador reportar um erro de análise em um snippet que parece correto à primeira vista.
Comparar Black 88 colunas vs PEP 8 79 colunas e autopep8/yapf/blackA saída aqui usa largura de linha configurável em vez de um estilo fixo de projeto; o alvo mais amplo de 88 colunas favorecido pelo Black produz um resultado mais compacto, enquanto o padrão PEP 8 de 79 colunas é o que autopep8 e a maioria dos editores usam por padrão. Black é opinativo e não configurável, yapf é estilo Google e ajustável, e autopep8 só corrige violações PEP 8 sem reestruturar o código. Use esta ferramenta no navegador para uma limpeza rápida, depois execute Black ou Ruff no CI para manter o projeto consistente com o estilo padronizado pela equipe.

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 - b

Formataçã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.