Pular para o conteúdo

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:

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

name = "John"
age = 30
message = "My name is %s and I am %d years old." % (name, age)
print(message)

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á:

My name is John and I am 30 years old.

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:

name = "John"
age = 30
message = "My name is {} and I am {} years old.".format(name, age)
print(message)

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á:

My name is John and I am 30 years old.

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:

name = "John"
age = 30
message = f"My name is {name} and I am {age} years old."
print(message)

Neste exemplo, a string é prefixada com f e os valores são inseridos entre chaves {}. O resultado será o mesmo que nos exemplos anteriores:

My name is John and I am 30 years old.

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:

import math
number = math.pi
formatted_number = f"The value of pi is approximately {number:.2f}."
print(formatted_number)

Neste exemplo, o valor de number (pi) é formatado para ter duas casas decimais usando :.2f. O resultado será:

The value of pi is approximately 3.14.

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:

class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
person = Person("John")
message = f"This is {person}."
print(message)

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á:

This is Person: John.

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:

value1 = 10
value2 = 5
result = f"The sum of {value1} and {value2} is {value1 + value2}."
print(result)

Neste exemplo, a expressão value1 + value2 é inserida dentro das chaves e seu resultado é interpolado na string. O resultado será:

The sum of 10 and 5 is 15.

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!