# Formatador Python

URL: https://discuvr.org/python-formatter/?hl=pt
Last updated: 2026-11-07
MCP tool: `format_python`

Cole Python e o Black formata com seu comprimento de linha e opções. Erros de sintaxe mostram a linha exata. O código nunca é executado nem guardado.

Isto executa o Black, o formatador em que a maioria dos projetos Python já concorda, sobre o que você colar, com o comprimento de linha e o tratamento de aspas que você escolher. Se o arquivo não puder ser analisado, diz em qual linha, e se já estiver formatado, também diz isso, em vez de fingir que fez algo.

## O que faz

- Formatação Black em 79, 88, 100 ou 120 colunas.
- Modo "apenas verificar": descubra se um arquivo mudaria sem alterá-lo.
- Mantenha seu próprio estilo de aspas, ou deixe o Black normalizá-lo.
- Respeite ou ignore a vírgula final mágica que mantém uma coleção expandida.
- Direcione para uma versão específica do Python quando a sintaxe for sensível à versão.
- Erros de sintaxe informam a linha, a coluna e o código ao redor.
- Informa quantas linhas foram adicionadas e removidas, além do formato do arquivo.

## Como funciona

1. Cole o código, ou um arquivo inteiro dele.
2. Escolha um comprimento de linha e as opções que lhe interessam.
3. Pressione Formatar e depois copie ou baixe o resultado.

## Seu código nunca é executado

Formatar Python não requer executá-lo. O código é analisado em uma árvore de sintaxe e reescrito a partir dessa árvore, inteiramente em memória - nunca é escrito em um arquivo, nunca é importado e nunca é executado. Um formatador que executasse o que você colou seria um shell remoto com uma caixa de texto.

## Por que Black, e não uma opinião nossa

Black é uma transformação que preserva a AST: o código que sai é o mesmo programa que o que entrou. Essa propriedade é o motivo pelo qual se pode confiar em um formatador, e é por isso que nenhum modelo de linguagem está envolvido em nenhuma parte desta ferramenta. Um modelo pedido para arrumar código ocasionalmente reescreverá uma linha enquanto está nisso, e uma mudança silenciosa em um código que funciona é a única falha que um formatador não pode se permitir.

## Apenas verificar

A mesma pergunta que o CI faz: este arquivo mudaria? O modo de verificação devolve seu código original intacto e informa se o Black o teria reformatado, e em quantas linhas. É a forma rápida de descobrir por que um pipeline está falhando em um arquivo que você não consegue reproduzir localmente.

## Vírgula final mágica e fmt: off, exemplos resolvidos

Uma vírgula depois do último item diz ao Black para manter uma chamada ou coleção com um item por linha: result = compute(alpha, beta,) volta em quatro linhas, com alpha, e beta, cada um na sua própria linha. Marque Ignorar vírgula final mágica e a mesma entrada vira result = compute(alpha, beta) sempre que couber no comprimento de linha. Para proteger um bloco alinhado à mão, como uma matriz, coloque # fmt: off na linha acima e # fmt: on abaixo, e o Black deixa tudo o que fica entre eles como você escreveu; # fmt: skip no fim de uma linha protege só aquela linha. São comentários do próprio Black, então continuam valendo quando o CI do seu projeto roda o Black.

## Perguntas

**Meu código é enviado ou armazenado?**

Ele é enviado ao servidor, formatado em memória e devolvido na mesma resposta. Nada é gravado em disco, armazenado em cache ou registrado, e o registro de uso mantém apenas contagens - tamanho, opções, quantas linhas mudaram - nunca o código.

**Formatar muda o que meu código faz?**

Não. O Black muda a apresentação, não o comportamento, mas faz mais do que mover espaços. Remove parênteses redundantes (x = (1) vira x = 1), põe em minúsculas os prefixos e expoentes dos números (0XABCDEF vira 0xABCDEF, 1E5 vira 1e5), acrescenta uma vírgula final quando divide uma chamada em várias linhas, reduz sequências de linhas em branco e apara os espaços dentro de uma docstring (""" Doc. """ vira """Doc."""). Esta última mudança altera o texto de __doc__, o que só importa se o seu código lê as próprias docstrings.

**Por que ele não reformatou meu arquivo?**

Porque já estava formatado no comprimento de linha que você escolheu. A ferramenta diz "já formatado" em vez de devolver silenciosamente uma cópia.

**Ele ordena meus imports?**

Não. Ordenar imports é tarefa do isort, não do Black, e os dois discordam com frequência suficiente para que fazer isso aqui lhe surpreendesse.

**Ele pode formatar um arquivo com erro de sintaxe?**

Nenhum formatador pode - um arquivo que não analisa não tem estrutura para reescrever. Você recebe a linha, a coluna e o código ao redor para poder corrigi-lo e tentar novamente.

**Ele segue o PEP 8?**

O Black é compatível com o PEP 8 com um desvio conhecido: seu comprimento de linha padrão é 88 em vez de 79. Escolha 79 no seletor de comprimento de linha se precisar do número mais estrito.

**Qual o tamanho de arquivo que posso formatar?**

Até 400.000 caracteres por execução. A formatação para após 10 segundos, o que só arquivos muito grandes ou muito repetitivos atingem, e cada endereço IP pode fazer 30 formatações a cada 10 minutos.

**Como obtenho a mesma formatação no meu editor, no pre-commit ou na CI?**

Esta página usa o Black, e a versão aparece no cabeçalho da página em telas largas. O Black lê as configurações do projeto em pyproject.toml, na seção [tool.black], com os nomes longos das opções: line-length = 88 para a opção "Comprimento da linha" escolhida, skip-string-normalization = true se você marcou "Manter minhas aspas", skip-magic-trailing-comma = true para "Ignorar vírgula final mágica" e target-version = ["py311"] para um valor fixo em "Alvo". Os plugins de editor e o hook do pre-commit leem o mesmo arquivo. Rode black . para formatar e black --check --diff . na CI: nada é alterado e o comando sai com código 1 quando um arquivo seria reformatado. Fixe a mesma versão do Black desta página, porque a primeira versão de cada ano civil pode mudar o estilo estável.

**O resultado é igual ao do formatador do Ruff (ruff format)?**

Quase sempre, mas não byte a byte. O formatador do Ruff foi feito para substituir o Black diretamente, e a documentação do Ruff informa que, em grandes projetos já formatados com o Black, como Django e Zulip, mais de 99,9% das linhas saem idênticas. Ele diverge mais em código que nunca passou pelo Black, principalmente em comentários no fim da linha, e a documentação lista os desvios intencionais. O comprimento de linha padrão também é 88, definido com line-length em [tool.ruff]; quote-style = "preserve" em [tool.ruff.format] corresponde a "Manter minhas aspas" e skip-magic-trailing-comma = true corresponde a "Ignorar vírgula final mágica". Se a sua CI roda ruff format --check, teste o arquivo com o Ruff, não com esta página.

## Mais em Ferramentas para desenvolvedores

- [Visualizador de HTML](https://discuvr.org/html-viewer/?hl=pt)
- [Calculadora de Sub-rede IP](https://discuvr.org/ip-subnet-calculator/?hl=pt)
- [Codificar / Decodificar](https://discuvr.org/encode-decode/?hl=pt)
- [Conversor de timestamp Unix](https://discuvr.org/timestamp-converter/?hl=pt)

## Usado frequentemente com

- [Comparar textos](https://discuvr.org/text-diff/?hl=pt)
- [Conversor de maiúsculas e ferramentas de linhas](https://discuvr.org/case-converter/?hl=pt)
- [Study Buddy](https://discuvr.org/study-buddy/?hl=pt)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
