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
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:
- O operador de interpolação de string (
%
), também conhecido como operador de módulo - 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:
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:
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:
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:
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:
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:
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:
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