Como usar f‑strings para formatar números e moedas no Python

Publicado em: 13/04/2026
Tempo de leitura: 10 minutos

Dominar a exibição de dados é uma das habilidades mais essenciais para qualquer desenvolvedor, e aprender como usar f-strings para formatar números e moedas no Python é o caminho mais rápido para criar interfaces profissionais. Introduzidas no Python 3.6, as f-strings (format string literals) revolucionaram a maneira como inserimos variáveis dentro de textos. Elas não servem apenas para concatenar palavras, mas oferecem um sistema de formatação poderoso, capaz de transformar números brutos em valores monetários, porcentagens e tabelas alinhadas com pouquíssimas linhas de código.

Ao contrário dos métodos antigos, como o operador % ou o método .format(), as f-strings permitem que você escreva expressões diretamente dentro de chaves {}. Isso torna o código muito mais legível e fácil de manter. Se você está construindo uma calculadora em Python ou um sistema financeiro complexo, entender as nuances da formatação numérica impedirá que seus relatórios exibam dízimas periódicas confusas ou valores desalinhados para o usuário final.

O que são f-strings e por que usá-las?

As f-strings são identificadas pelo prefixo ‘f’ antes das aspas da string. Elas são avaliadas em tempo de execução, o que significa que são mais rápidas do que os métodos tradicionais. A grande vantagem de saber como usar f-strings para formatar números e moedas no Python reside na sua sintaxe concisa. Em vez de chamar funções externas de arredondamento, você define a máscara de exibição diretamente na declaração da variável.

Imagine que você tem um resultado de cálculo como 1234.5678 e precisa exibi-lo como um valor em Reais. Sem a formatação adequada, o Python exibiria todas as casas decimais. Com f-strings, você resolve isso instantaneamente, garantindo que a experiência do usuário seja polida e profissional, evitando os erros comuns de iniciantes em Python que costumam poluir o console com dados brutos.

Como formatar casas decimais com f-strings

O controle de casas decimais é a necessidade mais frequente em projetos de programação. Para limitar a quantidade de números após a vírgula, utilizamos a sintaxe :{total_de_casas}f. Por exemplo, para exibir apenas duas casas decimais, usamos :.2f. O “f” indica que estamos lidando com um float em Python (número de ponto flutuante).

Python
preco = 49.9987
print(f"O preço ajustado é: R$ {preco:.2f}")
# Saída: O preço ajustado é: R$ 50.00

Note que o Python realiza o arredondamento automático para o valor mais próximo. Se a terceira casa decimal for maior ou igual a 5, o número anterior é incrementado. Essa precisão é vital para quem trabalha com análise de dados, onde a clareza visual dos resultados determina a qualidade de um relatório ou gráfico.

Como usar f-strings para formatar números e moedas no Python com milhar

Para ler valores grandes, como salários ou populações, os separadores de milhar são fundamentais. No padrão internacional (inglês), usa-se a vírgula como separador. No Python, basta adicionar uma vírgula após os dois pontos dentro das chaves. No entanto, para o padrão brasileiro, onde usamos pontos para milhares e vírgulas para decimais, precisamos de um pequeno truque de substituição ou do uso da biblioteca locale.

Veja como aplicar o separador de milhar padrão:

Python
faturamento = 1500750.50
print(f"Faturamento: {faturamento:,.2f}")
# Saída: Faturamento: 1,500,750.50

Para adaptar ao formato brasileiro (R$), uma abordagem comum é trocar os pontos por vírgulas manualmente ou configurar o local do sistema. Se você estiver desenvolvendo um conversor de moedas em Python, essa formatação será o diferencial visual do seu software.

Alinhamento e preenchimento de números

As f-strings permitem criar colunas perfeitamente alinhadas no terminal sem usar bibliotecas externas. Isso é útil para gerar recibos ou menus. Você pode definir a largura total do campo e a direção do alinhamento usando os símbolos:

  • < : Alinha à esquerda.
  • > : Alinha à direita (padrão para números).
  • ^ : Centraliza o conteúdo.
Python
produto1 = "Teclado"
preco1 = 150.00
produto2 = "Mouse"
preco2 = 85.50

print(f"{produto1:<15} | R$ {preco1:>8.2f}")
print(f"{produto2:<15} | R$ {preco2:>8.2f}")

No exemplo acima, definimos 15 espaços para o nome do produto e 8 espaços para o preço. Isso garante que, independentemente do tamanho da palavra, as barras verticais e os valores fiquem em linha reta, algo essencial para criar um menu interativo no terminal.

Trabalhando com porcentagens de forma simples

Converter decimais em porcentagens (ex: 0.15 para 15%) é uma tarefa diária em scripts de automação. Em vez de multiplicar por 100 e adicionar o símbolo manualmente, você pode usar o sufixo % dentro da f-string. O Python automaticamente multiplica o valor por 100 e formata as casas decimais conforme solicitado.

Python
taxa_sucesso = 0.8543
print(f"Taxa de acerto: {taxa_sucesso:.1%}")
# Saída: Taxa de acerto: 85.4%

Essa funcionalidade economiza tempo e reduz erros de digitação de lógica matemática simples, permitindo que você se concentre em partes mais complexas, como saber como consumir APIs REST para buscar dados em tempo real.

Formatação de números inteiros e zeros à esquerda

Às vezes, precisamos que um número tenha uma quantidade fixa de dígitos, como em códigos de barras, IDs de usuários ou datas. Com f-strings, podemos adicionar zeros à esquerda facilmente especificando o preenchimento desejado. O uso de inteiros em Python fica muito mais organizado quando padronizamos sua exibição.

Python
dia = 5
mes = 9
ano = 2023
print(f"Data formatada: {dia:02d}/{mes:02d}/{ano}")
# Saída: Data formatada: 05/09/2023

O 02d diz ao Python: “exiba um inteiro (d), garanta que ele tenha 2 caracteres de largura e preencha com zero se for necessário”. Isso é fundamental para evitar que datas ou códigos fiquem com tamanhos variados, o que prejudica a ordenação visual.

Conversão de bases numéricas (Hexadecimal, Binário e Octal)

Para desenvolvedores que trabalham com baixo nível, eletrônica ou criptografia, converter um número decimal para outras bases é uma necessidade constante. As f-strings facilitam isso com os sufixos x (hexadecimal), b (binário) e o (octal).

De acordo com a documentação oficial do Python, as f-strings são extensões das expressões literais que suportam essas conversões de forma nativa. Veja como é simples:

Python
numero = 255
print(f"Hex: {numero:x}") # ff
print(f"Bin: {numero:b}") # 11111111

Se você deseja o prefixo (como 0x ou 0b), basta adicionar o símbolo # antes do tipo: {numero:#x}. Isso torna a depuração de sistemas muito mais ágil para quem já está acostumado com os comandos essenciais do Python.

Como aplicar Localização (Moeda Real – R$)

Como vimos, o Python usa o padrão americano por padrão. Para converter “1,250.50” em “1.250,50”, podemos usar o módulo locale. Esse módulo altera as configurações de exibição conforme a região geográfica definida no sistema operacional.

Python
import locale

# Configura para o padrão brasileiro
locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')

valor = 3500.75
valor_formatado = locale.currency(valor, grouping=True)
print(f"O saldo é: {valor_formatado}")
# Saída: O saldo é: R$ 3.500,75

Embora as f-strings sejam ótimas, combinar o poder delas com o módulo locale é a forma definitiva de garantir que seu software seja amigável para usuários brasileiros. Se você estiver desenvolvendo algo para a edição de planilhas via Python, essa formatação garantirá que os dados inseridos nas células sigam as normas contábeis do Brasil.

Resumo de Sintaxe das f-strings

Para facilitar sua consulta rápida, aqui está uma tabela com os comandos mais utilizados ao buscar como usar f-strings para formatar números e moedas no Python:

ComandoFinalidadeExemplo
:.2fDuas casas decimais12.35
:,Separador de milhar1,000,000
:.0%Porcentagem sem decimais85%
:0>5Preencher com zeros (total 5)00042
:^10Centralizar em 10 espaçosTexto

A versatilidade das f-strings é o que as torna a ferramenta de formatação preferida. Ao aplicá-las em seus projetos, você reduz a complexidade do código e aumenta a clareza para quem lê o seu trabalho com strings em Python.

Cuidados e boas práticas

Apesar de poderosas, as f-strings não devem ser usadas para queries de banco de dados ou construção de URLs dinâmicas com dados vindos de usuários desconhecidos, pois podem abrir brechas para injeção. Para esses casos, procure bibliotecas específicas ou o uso seguro de parâmetros, como é feito ao conectar o Python ao MySQL.

Também evite colocar lógica complexa dentro das chaves {}. Embora o Python permita, isso torna o código difícil de ler. Se você precisa fazer um cálculo grande antes de exibir, faça-o em uma linha anterior e passe apenas o resultado para a f-string. Manter a indentação no Python organizada e as expressões simples é o segredo para um código limpo (Clean Code).

As f-strings mudaram a forma como escrevemos Python, tornando o processo de formatação de dados algo intuitivo e quase literário.

Para aprender mais sobre como manipular dados de forma eficiente, consulte guias de autoridades como o Real Python, que oferece estudos de caso profundos sobre a performance dessas strings comparadas a orçamentos de memória de larga escala.

Perguntas Frequentes

Posso usar f-strings no Python 2.7?

Não. As f-strings foram introduzidas no Python 3.6. Para versões antigas, você deve usar o método .format() ou o operador %.

Como formatar uma data usando f-strings?

Você pode usar especificadores de formato do datetime diretamente: f"{agora:%d/%m/%Y}" gera algo como 25/12/2023.

Como colocar aspas dentro de uma f-string?

Use tipos de aspas diferentes. Se a f-string começa com aspas duplas, use aspas simples dentro das chaves, ou vice-versa.

É possível arredondar para cima sempre?

A f-string usa o arredondamento padrão do Python. Se precisar sempre arredondar para cima (teto), use a função ceil do módulo math antes de formatar.

As f-strings são seguras contra SQL Injection?

Não. Nunca use f-strings para montar consultas SQL com dados de usuários. Use os parâmetros das bibliotecas de banco de dados (como sqlite3 ou SQLAlchemy).

Como exibir o símbolo de chaves {} dentro de uma f-string?

Para exibir uma chave literal, você deve dobrá-la: {{ }} será renderizado como { }.

Qual a diferença de performance entre f-strings e .format()?

As f-strings são consideravelmente mais rápidas porque o Python as processa como instruções de baixo nível, enquanto o .format() envolve uma chamada de método e busca de atributos.

Como formatar números científicos (ex: 1.2e+10)?

Use o sufixo :e ou :E dentro das chaves. Por exemplo: f"{valor:e}".

Praticar como usar f-strings para formatar números e moedas no Python transformará a maneira como você entrega resultados. Seja em um script simples ou em uma aplicação robusta, a clareza dos dados é o que define o sucesso de um programador. Comece a aplicar esses conceitos hoje mesmo em seus projetos e veja a diferença na legibilidade do seu código!

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Fundamentos
    Foto do Leandro Hirt

    Por que meu loop nunca termina? Descubra a solução

    Você acabou de escrever um script incrível, aperta o botão de executar e, de repente, o cursor fica piscando infinitamente

    Ler mais

    Tempo de leitura: 9 minutos
    01/04/2026
    Fundamentos
    Foto do Leandro Hirt

    Como baixar vídeos do YouTube com Python em 5 minutos

    Você já se perguntou como transformar horas de conteúdo do YouTube em arquivos locais para assistir offline? Seja para estudar

    Ler mais

    Tempo de leitura: 10 minutos
    22/03/2026
    Fundamentos
    Foto do Leandro Hirt

    == vs is em Python: descubra o que realmente acontece

    Você já se deparou com uma situação em que dois objetos parecem idênticos, mas o Python insiste que eles são

    Ler mais

    Tempo de leitura: 9 minutos
    21/03/2026
    Fundamentos
    Foto do Leandro Hirt

    Como criar um menu interativo no terminal com Python

    Criar uma interface eficiente para o usuário não exige sempre o desenvolvimento de janelas complexas ou botões coloridos. Muitas vezes,

    Ler mais

    Tempo de leitura: 10 minutos
    20/03/2026
    Fundamentos
    Foto do Leandro Hirt

    Descubra como usar o operador ternário no Python

    O operador ternário no Python é uma daquelas ferramentas que, uma vez dominadas, mudam completamente a forma como você escreve

    Ler mais

    Tempo de leitura: 10 minutos
    18/03/2026
    Fundamentos
    Foto do Leandro Hirt

    Descubra o match-case: como usar pattern matching no Python

    O desenvolvimento de software com a linguagem Python sempre foi pautado pela legibilidade e simplicidade. Com o lançamento da versão

    Ler mais

    Tempo de leitura: 10 minutos
    14/03/2026