Pular para o conteúdo

Como Usar as Strings Interpoladas no Python?

[

Python’s F-String para Interpolação e Formatação de Strings

por Joanna Jablonski, 18 de Outubro de 2023

Introdução

As f-strings em Python oferecem uma maneira rápida de interpolar e formatar strings. Elas são legíveis, concisas e menos propensas a erros do que ferramentas tradicionais de interpolação e formatação de strings, como o método .format() e o operador de módulo (%). Além disso, as f-strings também são um pouco mais rápidas que essas ferramentas.

Ao final deste tutorial, você entenderá por que as f-strings são uma ferramenta tão poderosa que você deve aprender e dominar como desenvolvedor Python.

Neste tutorial, você aprenderá como:

  • Interpolar valores, objetos e expressões em suas strings usando f-strings
  • Formatar f-strings usando a minilinguagem de formatação de strings do Python
  • Explorar algumas funcionalidades interessantes das f-strings no Python 3.12 e além
  • Decidir quando utilizar interpolação tradicional em vez de f-strings

Para aproveitar ao máximo este tutorial, é recomendado que você esteja familiarizado com o tipo de dado string em Python. Também é benéfico ter experiência com outras ferramentas de interpolação de strings, como o operador de módulo (%) e o método .format().

Código de Exemplo

nome = "João"
idade = 30
print(f"Meu nome é {nome} e tenho {idade} anos.")

Interpolação e Formatação de Strings Antes do Python 3.6

Antes do Python 3.6, existiam duas ferramentas principais para interpolar valores, variáveis e expressões em literais de string:

  1. O operador de interpolação de string (%), também conhecido como operador de módulo
  2. O método .format()

Vamos revisitar essas duas ferramentas de interpolação de string nas seções a seguir. Também aprenderemos sobre a formatação de strings usando as f-strings no Python 3.12 e além.

O operador de interpolação de string (%)

O operador de interpolação de string (%) permite inserir valores em uma string usando um marcador de posição. Vamos ver um exemplo:

nome = "João"
idade = 30
print("Meu nome é %s e tenho %d anos." % (nome, idade))

Neste exemplo, %s é um marcador de posição para uma string, e %d é um marcador de posição para um número inteiro. Os valores correspondentes são fornecidos como uma tupla após o operador de interpolação de string (%).

O método .format()

O método .format() permite inserir valores em uma string usando chaves como marcadores de posição. Vamos ver um exemplo:

nome = "João"
idade = 30
print("Meu nome é {} e tenho {} anos.".format(nome, idade))

Neste exemplo, {} são marcadores de posição que serão substituídos pelos valores correspondentes fornecidos para o método .format().

Interpolação de Strings com F-Strings em Python

As f-strings são uma sintaxe mais moderna para interpolação e formatação de strings no Python, introduzida a partir da versão 3.6. Elas oferecem uma forma mais fácil e legível de inserir valores, objetos e até mesmo expressões em strings.

Interpolação de Valores e Objetos em F-Strings

Para interpolar valores ou objetos em uma f-string, basta colocá-los entre chaves {} dentro da string, precedidos pelo caractere f. Vamos ver um exemplo:

nome = "João"
idade = 30
print(f"Meu nome é {nome} e tenho {idade} anos.")

Neste exemplo, a variável nome e idade são interpoladas na string usando f-strings. Os valores correspondentes serão substituídos diretamente na string resultante.

Inserção de Expressões em F-Strings

Além de valores e objetos, as f-strings também suportam a inserção de expressões. Você pode colocar qualquer expressão Python válida entre as chaves {} dentro da f-string. Vamos ver um exemplo:

idade = 30
print(f"Daqui a cinco anos, terei {idade + 5} anos.")

Neste exemplo, a expressão idade + 5 é avaliada dentro da f-string e o resultado é interpolado na string resultante.

Formatação de Strings com F-String

Além de permitir a interpolação de valores e objetos, as f-strings também suportam a formatação de strings usando a minilinguagem de formatação do Python.

A minilinguagem de formatação de strings permite especificar diversos formatos e opções de formatação para os valores interpolados em uma f-string. Vamos ver alguns exemplos:

nome = "João"
idade = 30
print(f"Meu nome é {nome.upper()} e tenho {idade:02d} anos.")

Neste exemplo, usamos o método .upper() para converter a string nome em maiúsculas e usamos :02d para formatar a idade como um número inteiro com dois dígitos, preenchendo com zeros à esquerda, se necessário.

Outras Funcionalidades Relevantes das F-Strings

As f-strings possuem algumas funcionalidades adicionais que podem ser úteis em certos casos.

Uso das Representações de String de um Objeto em F-Strings

É possível utilizar as representações de string de um objeto em uma f-string. Para fazer isso, basta chamar o método __str__() ou __repr__() dentro das chaves {}. Vamos ver um exemplo:

class Pessoa:
def __init__(self, nome):
self.nome = nome
def __str__(self):
return f"Olá, meu nome é {self.nome}"
def __repr__(self):
return f"Pessoa(nome={self.nome})"
p = Pessoa("João")
print(f"{p}") # Saída: Olá, meu nome é João

Neste exemplo, a classe Pessoa possui um método __str__() que retorna uma representação de string amigável do objeto quando chamado. Ao interpolarmos a instância p da classe Pessoa em uma f-string, o método __str__() é automaticamente chamado e sua representação de string é utilizada.

Expressões Autoexplicativas para Depuração

As f-strings também podem ajudar na depuração de código ao permitir a inserção de expressões autoexplicativas. Você pode colocar qualquer expressão Python válida dentro das chaves {} de uma f-string, mesmo que essa expressão não produza um valor que deva ser interpolado diretamente na string. Vamos ver um exemplo:

x = 10
y = 20
print(f"O valor de x é {x}, e o valor de y é {y}, então a soma é {x + y}.")

Neste exemplo, a expressão x + y dentro da f-string não é diretamente interpolada na string resultante. Entretanto, ela é útil para fornecer uma informação adicional sobre a soma dos valores de x e y na string.

Comparando o Desempenho: F-String vs Ferramentas Tradicionais

De acordo com testes de desempenho, as f-strings são um pouco mais rápidas do que as ferramentas tradicionais de interpolação e formatação de strings. A diferença de desempenho, no entanto, pode variar dependendo do caso de uso e da quantidade de strings a serem interpoladas e formatadas. Em geral, as f-strings são consideradas mais eficientes.

Conclusão

As f-strings são uma poderosa ferramenta de interpolação e formatação de strings em Python. Elas oferecem uma sintaxe moderna e legível, além de serem rápidas e eficientes. A partir da versão 3.6, as f-strings são amplamente utilizadas e recomendadas para trabalhar com strings interpoladas. Agora você tem os conhecimentos necessários para utilizar as f-strings em seus projetos Python com confiança!

Takeaways Principais

  • As f-strings permitem interpolar e formatar strings de forma rápida e legível
  • As f-strings são introduzidas com o prefixo f antes das aspas da string
  • É possível interpolar valores, objetos e até mesmo expressões em f-strings
  • A minilinguagem de formatação de strings permite formatar os valores interpolados nas f-strings
  • As f-strings possuem funcionalidades adicionais, como a utilização das representações de string de um objeto e a inserção de expressões autoexplicativas
  • Em geral, as f-strings são consideradas mais eficientes do que ferramentas tradicionais de interpolação e formatação de strings