Como usar a interpolação de strings 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 do Python fornecem uma maneira rápida de interpolar e formatar strings. Elas são legíveis, concisas e menos propensas a erros em comparação com as ferramentas tradicionais de interpolação e formatação de strings, como o método .format()
e o operador de módulo (%
). Uma f-string também é um pouco mais rápida do que essas ferramentas!
Ao final deste tutorial, você saberá por que as f-strings são uma ferramenta tão poderosa que você deve aprender e dominar como desenvolvedor Python.
Como Interpolar e Formatar Strings Antes do Python 3.6
Antes do Python 3.6, você tinha duas principais ferramentas para interpolar valores, variáveis e expressões dentro de literais de string:
- O operador de interpolação de string (
%
), também conhecido como operador de módulo. - O método
str.format()
.
Vamos revisar essas duas ferramentas de interpolação de string nas seções a seguir e também aprender sobre as capacidades de formatação de strings.
O operador de interpolação de string, %
O operador de interpolação de string %
é uma das maneiras mais antigas de interpolar valores em uma string no Python. Ele funciona substituindo marcadores de posição na string por valores correspondentes.
Aqui está um exemplo simples:
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 passados dentro dos parênteses após o operador %
. O resultado será:
No entanto, o uso do operador %
pode ser confuso, pois exige que você especifique o tipo de dado correspondente para cada marcador de posição. Além disso, a ordem dos valores no conjunto correspondente deve ser a mesma que a ordem dos marcadores de posição na string.
O método str.format()
O método str.format()
é uma abordagem mais moderna para interpolação de string. Nele, você pode usar chaves {}
como marcadores de posição dentro de uma string e passar os valores correspondentes como argumentos para o método format()
.
Veja um exemplo:
Neste exemplo, as chaves {}
são os marcadores de posição. Os valores correspondentes são passados como argumentos para o método format()
. O resultado será:
A vantagem do método str.format()
é que você não precisa se preocupar com a ordem dos valores ou especificar explicitamente os tipos de dados correspondentes. Porém, ainda existe uma certa verbosidade no uso do método format()
.
Interpolação de Strings com F-Strings no Python
A partir do Python 3.6, as f-strings foram introduzidas para tornar a interpolação de strings mais fácil e concisa. Com as f-strings, você pode inserir valores diretamente dentro de uma string prefixada com f
. Os valores são colocados entre chaves {}
.
Veja um exemplo:
Neste exemplo, a string é prefixada com f
e os valores são inseridos entre chaves {}
. O resultado será o mesmo que nos exemplos anteriores:
As f-strings trazem uma clareza maior ao código e evitam a necessidade de especificar tipos de dados ou a ordem dos valores. Elas também permitem que você inclua expressões dentro das chaves.
Formatação de Strings com F-String do Python
Além de interpolar valores em uma string, você também pode formatar as f-strings usando a mini linguagem de formatação de strings do Python.
A mini linguagem de formatação de strings permite que você especifique informações sobre a formatação dos valores, como a largura do campo, alinhamento, notação científica, entre outros.
Veja um exemplo:
Neste exemplo, o valor de number
(pi) é formatado para ter duas casas decimais usando :.2f
. O resultado será:
A mini linguagem de formatação de strings é muito poderosa e versátil. Você pode usá-la para formatar valores em diferentes formatos, datas, números, porcentagens, e muito mais.
Outros Recursos Relevantes das F-Strings
As f-strings têm alguns recursos adicionais que podem ser úteis em diferentes situações.
Usando as Representações de String de um Objeto em F-Strings
Em algumas situações, você pode querer usar a representação de string de um objeto em uma f-string. Você pode fazer isso simplesmente chamando o método __str__()
do objeto dentro da f-string.
Veja um exemplo:
Neste exemplo, a classe Person
possui um método __str__()
que retorna uma representação de string do objeto. Essa representação de string é então interpolada na f-string. O resultado será:
Expressões Auto-Documentadas para Depuração
Outro recurso útil das f-strings é a capacidade de incluir expressões dentro das chaves para fins de documentação e depuração. Essas expressões serão avaliadas e seu resultado será interpolado na string.
Veja um exemplo:
Neste exemplo, a expressão value1 + value2
é inserida dentro das chaves e seu resultado é interpolado na string. O resultado será:
Esse recurso das f-strings pode ser útil para verificar se as expressões são avaliadas corretamente ou para fornecer informações adicionais sobre um determinado cálculo.
Comparando o Desempenho: F-String vs Ferramentas Tradicionais
Além de serem mais concisas e legíveis, as f-strings também são um pouco mais rápidas do que as ferramentas tradicionais de interpolação e formatação de strings, como o operador de módulo e o método str.format()
.
Se você precisa de desempenho extra em situações em que a interpolação de string é usada de forma intensiva, considerar o uso de f-strings pode ser uma escolha acertada.
Conclusão
Neste tutorial, você aprendeu sobre as f-strings do Python e como usá-las para interpolar e formatar strings de uma maneira concisa e eficiente. Você viu como as f-strings superam as ferramentas tradicionais de interpolação e formatação de strings em termos de legibilidade, clareza e desempenho.
Lembre-se de que as f-strings são suportadas a partir do Python 3.6, portanto, verifique a versão do Python em que você está trabalhando antes de utilizar esse recurso.
Agora que você tem uma base sólida sobre o uso das f-strings, experimente-a em seus projetos e aproveite os benefícios de uma interpolação e formatação de strings mais simples e eficazes em Python!