Como formatar strings em Python (f-strings e formato)

Aprenda as melhores técnicas de formatação de strings em Python. Compare strings F modernas, format() e formatação percentual com exemplos de código.

Experimente esta solução no Editor

Visão geral

A formatação de strings é uma necessidade diária para renderizar variáveis dentro de mensagens, gerar logs, imprimir depurações de console e construir páginas da web. Python evoluiu significativamente a formatação de strings ao longo dos anos, oferecendo múltiplas opções para construir representações de texto dinâmicas de forma segura e legível.

No Python moderno (3.6+), a abordagem padrão e mais popular é a formatação com strings f (literais de string formatados). Ao prefixar uma string com `f` ou `F`, você pode incorporar expressões ou variáveis ​​​​Python diretamente entre chaves `{}`. Essas expressões são avaliadas em tempo de execução, tornando as strings f mais rápidas e significativamente mais legíveis do que os métodos de formatação mais antigos.

As bases de código Python mais antigas podem utilizar o método `.format()` ou a formatação percentual `%`. Embora ainda tenham suporte, eles geralmente são desencorajados para novos códigos. F-strings também suportam especificadores de formato embutidos poderosos, permitindo controlar a precisão decimal (por exemplo, `{value:.2f}`), alinhar texto ou formatar datas diretamente dentro de variáveis ​​de string.

Saída de código e execução

Este script demonstra a impressão de blocos de texto dinâmicos usando strings f, formatação de pontos flutuantes e uso de .format().

format_strings.py
Experimente no Editor
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Saída terminal
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Implementação passo a passo

  • Prefixe sua string literal com o caractere f (por exemplo, f'Hello...').
  • Insira variáveis ou expressões diretamente entre chaves {} na string.
  • Use especificações de formato como :.2f para lidar com a formatação decimal entre colchetes.

Perguntas frequentes

As strings f são mais rápidas que a formatação .format() e %?

Sim, strings f são avaliadas em tempo de execução como operações de bytecode otimizadas, tornando-as mais rápidas que os operadores .format() e %.

Posso executar funções ou avaliar expressões dentro de strings f?

Sim, qualquer expressão Python válida (incluindo operações matemáticas, chamadas de função e pesquisas de dicionário) pode ser avaliada entre colchetes.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.