Pular para o conteúdo

Como Utilizar o 'How funciona' para o Python de forma fácil?

[

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 oferecem uma forma 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 (%). 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 um 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 string do Python
  • Aproveitar alguns recursos legais das f-strings no Python 3.12 e além
  • Decidir quando usar ferramentas tradicionais de interpolação ao invés de f-strings

Para tirar o máximo proveito deste tutorial, você deve estar familiarizado com o tipo de dados string do Python. Também será benéfico ter experiência com outras ferramentas de interpolação de string, como o operador de módulo (%) e o método .format().

Interpolação e Formatação de 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 (%), ou operador de módulo
  2. O método str.format()

Vamos revisar essas duas ferramentas de interpolação de string nas seções seguintes. Você também aprenderá sobre a capacidade de formatação de strings usando essas ferramentas tradicionais.

O Operador de Interpolação de String, %

O operador de interpolação de string (%) é uma forma antiga de interpolar valores em strings. Você pode facilmente formatar uma string substituindo marcadores de lugar %s dentro da string por valores fornecidos. Por exemplo:

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

Este código imprimirá:

Meu nome é João e eu tenho 30 anos.

Você pode usar diferentes marcadores de lugar para diferentes tipos de dados, como %s para strings, %d para inteiros, %f para floats, entre outros.

O Método str.format()

O método str.format() é uma forma mais recente e flexível de interpolar valores em strings. Ele permite criar strings com espaços reservados {} que serão substituídos pelos valores fornecidos. Por exemplo:

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

Este código também imprimirá:

Meu nome é João e eu tenho 30 anos.

Você também pode especificar valores pelos seus índices ou por chaves nomeadas dentro dos espaços reservados. Por exemplo:

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

Ambos os códigos imprimirão o mesmo resultado.

Embora o método str.format() seja mais flexível do que o operador de interpolação de string, ainda assim há uma forma mais moderna e eficiente de realizar interpolação e formatação de strings: as f-strings.

Fazendo Interpolação de Strings com as F-Strings do Python

As f-strings do Python são uma adição poderosa ao arsenal de ferramentas de interpolação e formatação de strings. Elas permitem que você interpole valores, objetos e expressões diretamente em suas strings de uma forma legível e concisa.

Para criar uma f-string, você precisa adicionar o prefixo f antes das aspas da string e usar chaves {} para envolver as expressões que serão interpoladas. Por exemplo:

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

Este código também imprimirá:

Meu nome é João e eu tenho 30 anos.

Você pode usar qualquer expressão Python válida dentro das chaves das f-strings. Por exemplo:

x = 10
y = 5
print(f"A soma de {x} e {y} é igual a {x + y}.")

Este código imprimirá:

A soma de 10 e 5 é igual a 15.

As f-strings também suportam formatação avançada usando a minilinguagem de formatação de string do Python. Você pode especificar quantas casas decimais exibir para floats, o alinhamento e a largura dos valores, entre outras formatações. Por exemplo:

pi = 3.14159265358979323846
print(f"O valor de pi é aproximadamente {pi:.2f}.")

Este código imprimirá:

O valor de pi é aproximadamente 3.14.

Vantagens das F-Strings

As f-strings do Python têm várias vantagens em relação às ferramentas tradicionais de interpolação e formatação de strings:

  1. Legibilidade: As f-strings são fáceis de ler e entender. Você pode ver o resultado final da string diretamente no código-fonte.
  2. Concisão: As f-strings são menos verbosas do que outras formas de interpolação e formatação de strings.
  3. Rapidez: Como as f-strings são avaliadas durante o tempo de compilação, elas são mais rápidas do que outras ferramentas de interpolação e formatação de strings.
  4. Flexibilidade: As f-strings suportam uma ampla variedade de expressões e formatações usando a minilinguagem de formatação de string do Python.

Com essas vantagens, as f-strings são uma escolha ideal para interpolação e formatação de strings em Python.

Outros Recursos Relevantes das F-Strings

Além da interpolação e formatação básicas, as f-strings também têm outros recursos interessantes que podem ser úteis em diferentes situações. Vamos explorar alguns desses recursos.

Usando a Representação em String de um Objeto nas F-Strings

As f-strings permitem que você use a representação em string de um objeto diretamente nas strings interpoladas. Para fazer isso, basta chamar a função str() ou repr() dentro das chaves das f-strings. Por exemplo:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return self.name
def __repr__(self):
return f"Person('{self.name}', {self.age})"
person = Person("João", 30)
print(f"Eu sou {str(person)}.")
print(f"Repr: {repr(person)}.")

Este código imprimirá:

Eu sou João.
Repr: Person('João', 30).

Essa capacidade de usar a representação em string de um objeto pode ser útil para exibir informações úteis e resumidas sobre um objeto nas suas strings interpoladas.

Expressões de Autodocumentação para Depuração

Outro recurso interessante das f-strings é a capacidade de incluir expressões de autodocumentação dentro das chaves. Essas expressões de autodocumentação são úteis durante a depuração do código, pois permitem que você exiba informações sobre variáveis e expressões diretamente nas suas strings interpoladas. Por exemplo:

num1 = 5
num2 = 10
result = num1 + num2
print(f"A soma de {num1} e {num2} é igual a {result}.")

Este código imprimirá:

A soma de 5 e 10 é igual a 15.

O valor da variável result foi incluído diretamente na string interpolada usando a expressão {result}. Isso pode ser útil para depurar código e verificar o resultado de cálculos ou operações.

Comparando Desempenho: F-String vs Ferramentas Tradicionais

Além de serem mais legíveis e concisas, as f-strings também são mais rápidas do que as ferramentas tradicionais de interpolação e formatação de strings. Isso ocorre porque as f-strings são avaliadas durante o tempo de compilação, enquanto as ferramentas tradicionais são avaliadas durante o tempo de execução.

Conclusão

As f-strings do Python são uma adição poderosa às ferramentas de interpolação e formatação de strings. Elas oferecem uma sintaxe legível, concisa e eficiente para inserir valores, objetos e expressões em strings. Além disso, as f-strings são mais rápidas do que as ferramentas tradicionais.

Ao aprender e dominar as f-strings, você se tornará um desenvolvedor Python mais habilidoso e eficiente na manipulação de strings em seus programas.

Este tutorial cobriu os conceitos básicos das f-strings e também explorou alguns recursos interessantes, como usar a representação em string de um objeto e incluir expressões de autodocumentação.

Agora que você conhece as f-strings do Python, experimente usá-las em seus próprios projetos e aproveite os benefícios dessa poderosa ferramenta de interpolação e formatação de strings!