
Passo 1 de 7
O que a formatação automática resolve
Diferencie a padronização visual do código da verificação de seu comportamento.
Trilha de aprendizado · Nível 8 · Tutorial 8
Aplicar uma formatação consistente aos arquivos Python e verificar sua conformidade sem confundir padronização visual com correção do programa.
O que a formatação automática resolve
Diferencie a padronização visual do código da verificação de seu comportamento. 1 min
Preparar o Ruff e delimitar os arquivos
Instale e confirme o Ruff, monte um projeto mínimo local e defina quais arquivos farão parte da prática. 2 min
Antecipar as mudanças com --diff
Use o Ruff para visualizar uma comparação entre o conteúdo atual e a formatação proposta, sem gravar alterações no arquivo. 1 min
Aplicar a formatação em arquivos e pastas
Aplique o Ruff a um arquivo e a uma pasta, observe as mudanças gravadas e confirme a estabilidade em uma segunda execução. 1 min
Verificar a conformidade sem escrever
Use --check para verificar se arquivos e pastas seguem a formatação do Ruff sem modificar seu conteúdo. 1 min
Revisar as alterações e executar os testes
Compare os arquivos formatados com o conteúdo original e execute novamente os testes para verificar os comportamentos cobertos. 1 min
Concluir um ciclo de padronização
Aplique o fluxo completo do Ruff no projeto local, registre os resultados e confirme a formatação e os testes. 2 min

Passo 1 de 7
Diferencie a padronização visual do código da verificação de seu comportamento.
A formatação automática aplica um padrão consistente à apresentação do código: espaços, aspas, recuos, quebras de linha e disposição de expressões. Ela facilita a leitura, mas não decide se o programa produz o resultado correto.

A organização visual muda; as operações e os valores permanecem os mesmos.
Considere uma função que deveria descontar um valor do preço. Antes da formatação, ela está visualmente inconsistente:
def aplicar_desconto(preco,desconto):
mensagem='Desconto aplicado'
return preco+desconto,mensagemdef aplicar_desconto(preco, desconto):
mensagem = "Desconto aplicado"
return preco + desconto, mensagemExemplo
Com preco = 100 e desconto = 20, a função continua calculando 100 + 20 e devolvendo 120. Para produzir 80, seria necessário trocar o operador + por - — uma mudança de lógica, não de formatação. Testes continuam necessários para verificar o comportamento esperado.
Trocar + por - para corrigir o cálculo é apenas uma mudança de formatação.
Resumo

Passo 2 de 7
Instale e confirme o Ruff, monte um projeto mínimo local e defina quais arquivos farão parte da prática.
No computador, abra o terminal com o ambiente do projeto ativado. Crie uma pasta exclusiva para esta prática, entre nela e execute os comandos abaixo. O primeiro instala o Ruff; o segundo confirma que ele está disponível no mesmo ambiente.
python -m pip install ruff
python -m ruff --versionDica
A confirmação deve exibir uma versão do Ruff. Se o comando falhar, verifique se a instalação e a execução estão usando o mesmo ambiente Python. Ainda não execute o formatador.
Na raiz da pasta exclusiva, crie operacoes.py. Depois, crie a pasta tests e, dentro dela, test_operacoes.py. Copie os conteúdos completos a seguir sem corrigir os espaços, as quebras de linha ou a disposição das expressões: essas inconsistências serão usadas nos próximos passos.
Salve este conteúdo na raiz da pasta do projeto.
def somar(valores):
return sum( valores )
def aplicar_desconto(valor,percentual):
fator=1-(percentual/100)
return valor*fator
Salve este conteúdo dentro da pasta tests.
from operacoes import aplicar_desconto,somar
def test_somar_valores():
assert somar([10,20,5])==35
def test_aplicar_desconto():
resultado=aplicar_desconto(200,10)
assert resultado==180
A partir da pasta que contém operacoes.py, execute python -m pytest. Registre quantos testes passaram ou falharam. Esse resultado inicial permitirá uma comparação após a formatação. O código está sintaticamente válido, embora sua apresentação seja inconsistente.
python -m pytestA seleção deve incluir o módulo operacoes.py e a pasta tests. Uma pasta .venv, caso exista, contém arquivos do ambiente e não pertence ao alvo desta prática.

Selecione explicitamente o código do projeto; não inclua o ambiente virtual nem dependências externas.
Na raiz há operacoes.py, tests/ e .venv/. Qual seleção delimita corretamente os arquivos desta prática?

Passo 3 de 7
Use o Ruff para visualizar uma comparação entre o conteúdo atual e a formatação proposta, sem gravar alterações no arquivo.
Na pasta do projeto, execute o Ruff com --diff para comparar o conteúdo atual de operacoes.py com a versão que o formatador produziria. Esse comando apenas exibe as mudanças propostas: o arquivo permanece como está.
Execute no terminal aberto na pasta do projeto:
python -m ruff format --diff operacoes.pyDica
Depois do comando, volte ao arquivo aberto no editor. Os espaços, as aspas e as quebras de linha originais ainda devem estar presentes, pois --diff não grava a versão proposta.
Na comparação, uma linha iniciada por - representa a versão anterior, atualmente presente no arquivo. A linha correspondente iniciada por + mostra a versão proposta pelo Ruff. Outras linhas servem como contexto. O resultado exato depende do conteúdo de operacoes.py.
Este recorte ilustra ajustes de espaços, aspas e disposição de um dicionário em várias linhas:
-def criar_resumo(nome,total):
- return {'cliente':nome,'total':total,'mensagem':'Compra processada com sucesso'}
+def criar_resumo(nome, total):
+ return {
+ "cliente": nome,
+ "total": total,
+ "mensagem": "Compra processada com sucesso",
+ }Use os sinais e as cores como pistas para relacionar cada linha anterior à proposta correspondente.

O terminal mostra uma comparação; o conteúdo original continua no arquivo.
Relacione cada elemento da comparação ao seu significado.
Toque em um item e depois no par correspondente.

Passo 4 de 7
Aplique o Ruff a um arquivo e a uma pasta, observe as mudanças gravadas e confirme a estabilidade em uma segunda execução.
Na pasta do projeto, execute o comando abaixo. Diferentemente de --diff, ele aplica a formatação e salva o novo conteúdo em operacoes.py. Depois, confira o resumo exibido no terminal e reabra ou atualize o arquivo no editor para observar o resultado.
python -m ruff format operacoes.py
O caminho fornecido determina o alcance da operação; a saída formatada é gravada nos próprios arquivos.
Para formatar os arquivos Python encontrados na pasta tests, informe a pasta como alvo. Também é possível selecionar o módulo e a pasta na mesma execução. Esses comandos gravam as alterações nos arquivos alcançados.
python -m ruff format testspython -m ruff format operacoes.py testsDica
O Ruff informa quantos arquivos foram reformatados e quantos permaneceram inalterados. A redação exata pode variar conforme a versão, mas o resumo permite distinguir mudanças aplicadas de arquivos que já estavam no padrão.
Execute novamente o comando combinado. Sem mudanças no código ou na configuração, o Ruff normalmente não encontra nada novo para reformatar. Essa estabilidade significa que reaplicar o mesmo padrão não deve gerar alterações sucessivas.
python -m ruff format operacoes.py testsAtenção
O término bem-sucedido do formatador confirma que a operação foi executada, não que o programa está correto. Por enquanto, observe o resumo e compare visualmente os arquivos; a revisão completa e os testes serão retomados adiante.
Execute a formatação de operacoes.py e da pasta tests. Em seguida, repita o comando combinado e descreva: quais comandos você usou, o que percebeu nos arquivos e o que o resumo informou na segunda execução.
Escreva pelo menos 80 caracteres (0/80).

Passo 5 de 7
Use --check para verificar se arquivos e pastas seguem a formatação do Ruff sem modificar seu conteúdo.
Depois de aplicar a formatação, use --check para verificar o módulo e a pasta de testes. O Ruff examina os arquivos selecionados e informa se estão no padrão, mas não grava alterações.
python -m ruff format --check operacoes.py testsDica
Neste comando, --check pertence ao subcomando format. A análise estática de estilo e possíveis defeitos é outro uso do Ruff, que será estudado no próximo tutorial.
Os três comandos têm finalidades diferentes: format grava a padronização; format --diff mostra as mudanças propostas sem gravá-las; format --check apenas informa se os arquivos selecionados estão conformes.

Aplicar altera o arquivo; visualizar e verificar preservam seu conteúdo.
Exemplo
Se o Ruff informar que os arquivos já estão formatados, os alvos estão conformes. Se informar que um arquivo seria reformatado, ele está fora do padrão — e continua inalterado porque foi usado --check. A redação e os totais exibidos podem variar conforme a versão e os arquivos examinados.
python -m ruff format ____ operacoes.py tests
O comando com --check informa que operacoes.py seria reformatado. O que isso significa?

Passo 6 de 7
Compare os arquivos formatados com o conteúdo original e execute novamente os testes para verificar os comportamentos cobertos.
Abra operacoes.py e tests/test_operacoes.py no editor e compare-os com os conteúdos originais apresentados no início da prática. Não é necessário usar Git.
Espaços, aspas, quebras de linha e disposição de expressões podem ter mudado. Já nomes, valores, operadores e regras do programa devem continuar iguais.
Observe a diferença entre mudanças visuais esperadas e elementos da lógica que precisam permanecer intactos.

A formatação reorganiza a apresentação; a revisão confirma que os elementos da lógica foram preservados.
Atenção
Se você encontrar mudança em um nome, valor, operador ou regra, interrompa a conclusão da prática e investigue. O término do comando de formatação, sozinho, não comprova que está tudo correto.
Na pasta do projeto e com o mesmo ambiente usado anteriormente, execute novamente toda a suíte. Compare a quantidade de testes e o resultado final com o registro feito antes da formatação.
Execute no terminal, a partir da pasta do projeto:
python -m pytestDica
Se os mesmos testes continuarem aprovados, isso fornece evidência de que os comportamentos cobertos por eles foram preservados. Não é uma garantia de ausência de defeitos em cenários que os testes não verificam.
Quais diferenças de apresentação você observou? Qual foi o resultado dos testes antes e depois da formatação? Explique também por que testes aprovados não garantem a ausência de todos os defeitos.
Escreva pelo menos 80 caracteres (0/80).
Resumo
A formatação só deve ser considerada revisada quando as alterações visuais forem compreendidas e os testes forem executados novamente.

Passo 7 de 7
Aplique o fluxo completo do Ruff no projeto local, registre os resultados e confirme a formatação e os testes.
Na pasta do projeto usada durante o tutorial, substitua somente o conteúdo de operacoes.py pelo código abaixo. Mantenha a pasta tests e os testes existentes. O programa está sintaticamente válido e preserva as funções da prática, mas sua apresentação está inconsistente.
Execute todos os próximos comandos a partir da pasta do projeto. Se os nomes ou testes do seu projeto foram alterados durante a prática, restaure primeiro os arquivos apresentados no tutorial.
Copie todo o conteúdo para o arquivo operacoes.py.
def somar(a,b):
return a+b
def subtrair(a,b):
return a-b
def calcular_media(valores):
return ( sum(valores) / len(valores) )
def formatar_resultado(nome,valor):
return f'{nome}: {valor:.2f}'
O trabalho não termina quando o formatador grava o arquivo. O ciclo reúne inspeção, aplicação, revisão, verificação e testes.

A conformidade de formatação e o resultado dos testes são evidências diferentes e complementares.
Coloque os comandos na ordem adequada para verificar a situação inicial, visualizar a proposta, aplicar a formatação e confirmar a situação final.
Execute os quatro comandos na ordem organizada. Após o primeiro --check, confirme no editor que operacoes.py continua com a formatação inconsistente: essa opção não deve reescrever o arquivo.
Depois da formatação, revise no editor os espaços, as aspas e a disposição das expressões. Confirme que nomes, valores, operadores e regras não sofreram mudanças inesperadas. Por fim, execute python -m pytest e compare o resultado com a execução inicial feita antes da formatação.
Se aparecer uma alteração inesperada ou um teste falhar, investigue antes de considerar o ciclo concluído.
Sem enviar arquivos, registre: os comandos usados; o que o primeiro --check informou; como você confirmou que ele não reescreveu o arquivo; as mudanças vistas no --diff; o resultado da formatação e da revisão; a resposta do último --check; e o resultado do pytest.
Escreva pelo menos 120 caracteres (0/120).
Resumo
Você concluiu o fluxo de formatação com alvos explícitos e verificações complementares.
python -m ruff format --diff antecipa as mudanças sem gravá-las.python -m ruff format aplica a formatação aos arquivos e diretórios selecionados.python -m ruff format --check verifica a conformidade sem reescrever os arquivos.Parabéns! Você concluiu: Padronizar a formatação do código com Ruff
100 XP
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks