Programador Leigo
python 6 min leitura 2025-06-15

F-strings em Python: formatação de strings com exemplos

F-strings vão muito além do básico. Veja truques de formatação que vão impressionar até quem já programa.


Muito mais que colar variáveis

Todo mundo conhece o básico das f-strings:

nome = "Ana"
print(f"Olá, {nome}!")  # Olá, Ana!

Mas as f-strings do Python escondem poderes que pouca gente usa. Vamos explorar.


Expressões dentro das chaves

Você pode colocar qualquer expressão Python dentro de {}:

print(f"2 + 3 = {2 + 3}")                # 2 + 3 = 5
print(f"{'python'.upper()}")              # PYTHON
print(f"{len([1, 2, 3])} itens")          # 3 itens
print(f"{'Par' if 10 % 2 == 0 else 'Ímpar'}")  # Par

Formatação de números

Casas decimais

pi = 3.14159265
print(f"Pi = {pi:.2f}")    # Pi = 3.14
print(f"Pi = {pi:.4f}")    # Pi = 3.1416

Separador de milhar

populacao = 214000000
print(f"{populacao:,}")      # 214,000,000
print(f"{populacao:_}")      # 214_000_000

# Formato brasileiro (ponto como separador)
print(f"{populacao:,.0f}".replace(",", "."))  # 214.000.000

Porcentagem

taxa = 0.0875
print(f"Taxa: {taxa:.1%}")  # Taxa: 8.8%
print(f"Taxa: {taxa:.2%}")  # Taxa: 8.75%

Alinhamento e preenchimento

nome = "Python"

# Alinhado à direita (padrão para números)
print(f"{nome:>20}")    # '              Python'

# Alinhado à esquerda
print(f"{nome:<20}")    # 'Python              '

# Centralizado
print(f"{nome:^20}")    # '       Python       '

# Com caractere de preenchimento
print(f"{nome:*^20}")   # '*******Python*******'
print(f"{nome:->20}")   # '--------------Python'
print(f"{nome:.>20}")   # '..............Python'

Útil para criar tabelas e relatórios no terminal:

produtos = [("Café", 12.50), ("Pão", 5.00), ("Leite", 7.90)]

for nome, preco in produtos:
    print(f"{nome:<15} R$ {preco:>7.2f}")

# Café            R$   12.50
# Pão             R$    5.00
# Leite           R$    7.90

Debug com = (Python 3.8+)

Esse é o truque favorito dos devs Python. Adicione = depois da expressão:

x = 42
y = "teste"
lista = [1, 2, 3]

print(f"{x = }")        # x = 42
print(f"{y = }")        # y = 'teste'
print(f"{len(lista) = }")  # len(lista) = 3
print(f"{x * 2 = }")    # x * 2 = 84

O Python mostra a expressão e o resultado. Perfeito para debug rápido.


Conversão de representação

texto = "Olá\nMundo"

print(f"{texto}")     # Olá
                      # Mundo

print(f"{texto!r}")   # 'Olá\nMundo' — mostra a representação (repr)
print(f"{texto!s}")   # Olá\nMundo — str() explícito
print(f"{texto!a}")   # 'Ol\xe1\nMundo' — ASCII

O !r é ótimo para debug — mostra exatamente o que a string contém, incluindo caracteres especiais.


Datas formatadas

from datetime import datetime

agora = datetime.now()

print(f"{agora:%d/%m/%Y}")        # 15/06/2025
print(f"{agora:%H:%M}")           # 14:30
print(f"{agora:%A, %d de %B}")    # Sunday, 15 de June
print(f"{agora:%d/%m/%Y %H:%M}")  # 15/06/2025 14:30

Bases numéricas

numero = 255

print(f"Decimal:     {numero:d}")     # 255
print(f"Binário:     {numero:b}")     # 11111111
print(f"Octal:       {numero:o}")     # 377
print(f"Hexadecimal: {numero:x}")     # ff
print(f"Hexadecimal: {numero:X}")     # FF
print(f"Hexadecimal: {numero:#x}")    # 0xff

F-strings multilinha

nome = "Maria"
idade = 28
cidade = "São Paulo"

mensagem = (
    f"Nome: {nome}\n"
    f"Idade: {idade}\n"
    f"Cidade: {cidade}"
)

Cada linha precisa do seu próprio f. Sem o f, as {} não são interpretadas.


Antes das f-strings

Para apreciar o quanto f-strings são boas, veja como era antes:

nome = "Ana"
idade = 25

# format()
print("Olá, {}! Você tem {} anos.".format(nome, idade))

# % (estilo C)
print("Olá, %s! Você tem %d anos." % (nome, idade))

# f-string — limpo e direto
print(f"Olá, {nome}! Você tem {idade} anos.")

F-strings foram introduzidas no Python 3.6 e são a forma recomendada de formatar strings.


Resumo

Recurso Sintaxe Exemplo
Casas decimais :.2f 3.14
Milhar :, 1,000,000
Porcentagem :.1% 8.8%
Alinhamento :<20, :>20, :^20 alinha texto
Debug {var = } x = 42
Repr {var!r} 'texto'
Data :%d/%m/%Y 15/06/2025
Base :b, :x, :o 11111111

F-strings são uma das melhores features do Python. Quanto mais você usa, mais truques descobre.

Continue lendo

Compartilhar