O que são f-strings em Python

Como usar f-strings em Python

As f-strings (também conhecidas como formatted string literals) são uma funcionalidade muito interessante que foi introduzida na versão 3.6 do Python. Elas oferecem uma maneira mais simples e legível de formatar strings para a exibição de dados na saída, tornando a concatenação de variáveis e valores nessas strings mais fácil e eficiente.

A principal característica das f-strings é a utilização do prefixo f antes das aspas que delimitam a string. Dentro de uma f-string, podemos inserir expressões ou variáveis entre chaves { } que serão avaliadas e substituídas pelo seu valor na string final.

As f-strings foram introduzidas no Python com a PEP 498: https://peps.python.org/pep-0498/

Também é possível formatar strings em Python usando outros métodos, como por exemplo o método str.format.

Vejamos agora alguns exemplos básicos de como utilizar as f-strings.

Exemplos de f-strings

Exemplo 01

# Exemplo de f-string em Python
nome = "Fábio"
idade = 47
mensagem = f"Olá, meu nome é {nome} e eu tenho {idade} anos."
print(mensagem)

Neste exemplo, a variável mensagem será formatada com os valores das variáveis nome e idade e, ao ser impressa, resultará em:

Olá, meu nome é Fábio e eu tenho 47 anos.

Exemplo 02

Uma das vantagens das f-strings é que elas suportam expressões complexas dentro das chaves, permitindo a execução de cálculos e chamadas de funções diretamente na formatação da string. No exemplo a seguir vamos fazer um cálculo aritmético simples diretamente dentro da f-string:

# Exemplo de expressões dentro de uma f-string
a = 10
b = 5
resultado = f"A soma de {a} e {b} é igual a {a + b}."
print(resultado)

Saída:

A soma de 10 e 5 é igual a 15.

Exemplo 03

Além disso, as f-strings também podem ser úteis para formatar números, datas e outros tipos de dados, especificando um formato usando as mini linguagens de formatação do Python.

# Exemplo de formatação de números com f-string
valor = 1234.56789
mensagem = f"O valor é: {valor:.2f}" # Limita o número de casas decimais para 2.
print(mensagem)

Saída:

O valor é: 1234.57

Exemplo 04: Gerar saídas de múltiplas linhas

Para gerar saídas de múltiplas linhas usando f-strings em Python, podemos simplesmente usar as aspas triplas “”” ou ”’ para delimitar a string, permitindo que sejam inseridas várias linhas de texto e formatações dentro dela.

A seguir temos um exemplo de como usar f-strings para criar uma saída de múltiplas linhas:

# Exemplo de f-string para saída de múltiplas linhas
nome = "Alice"
idade = 25
profissao = "engenheira"

mensagem = f"""
Olá {nome},
Bem-vindo(a) ao nosso sistema!
Aqui estão algumas informações sobre você:
- Idade: {idade} anos
- Profissão: {profissao}
Esperamos que você aproveite nossa plataforma!
Atenciosamente,
A equipe do sistema
"""

print(mensagem)

Neste exemplo, a variável mensagem contém um texto formatado em múltiplas linhas, com valores substituídos a partir das variáveis nome, idade e profissao. A saída do código será:

Olá Alice,
Bem-vindo(a) ao nosso sistema!
Aqui estão algumas informações sobre você:
- Idade: 25 anos
- Profissão: engenheira
Esperamos que você aproveite nossa plataforma!
Atenciosamente,
A equipe do sistema

As f-strings, ao serem combinadas com aspas triplas, são uma ótima maneira de gerar saídas de múltiplas linhas com formatação de variáveis de forma mais concisa e legível. Isso vai deixar a criação de blocos de texto mais fácil e evitar a necessidade de concatenação manual de strings, proporcionando um código mais limpo e organizado.

Exemplo 05: Como usar f-strings com dicionários

Também é possível formatar de forma simples strings usando os valores contidos em dicionários do Python. Para isso, basta usar as chaves {} para referenciar as chaves do dicionário e obter seus respectivos valores na string formatada.

Vejamos um exemplo:

# Exemplo de f-string com dicionário
pessoa = {
"nome": "João",
"idade": 30,
"profissao": "programador"
}
mensagem = f"Olá, meu nome é {pessoa['nome']}, tenho {pessoa['idade']} anos e sou {pessoa['profissao']}."
print(mensagem)

Neste exemplo, temos um dicionário chamado pessoa com algumas informações sobre a pessoa. Em seguida, utilizamos uma f-string para criar a mensagem formatada, onde as chaves {} são usadas para inserir os valores do dicionário nas posições apropriadas. A saída do código será:

Olá, meu nome é João, tenho 30 anos e sou programador.

Note que usamos pessoa[‘nome’], pessoa[‘idade’] e pessoa[‘profissao’] para acessar os valores do dicionário. Isso é necessário porque as chaves do dicionário são usadas como chaves de formatação dentro das chaves {} da f-string.

Assim, usar f-strings com dicionários é uma maneira eficiente e conveniente de formatar strings, especialmente quando precisamos inserir valores de um dicionário em posições específicas.

Exemplo 06: Usar caracteres de escape em f-strings

Os caracteres de escape são usados em f-strings, assim como em strings normais em Python, para incluir caracteres especiais que não seriam interpretados de forma literal. Vejamos alguns exemplos de uso de caracteres de escape em f-strings:

1. Novas linhas

# Exemplo de uso de quebra de linha com \n em f-string
nome = "João"
mensagem = f"Olá, {nome}!\nBem-vindo ao nosso sistema."
print(mensagem)

Saída:

Olá, João!
Bem-vindo ao nosso sistema.

2. Aspas dentro de uma f-string

# Exemplo de uso de aspas dentro da f-string com \"
mensagem = f"Ele disse: \"Isso é incrível!\""
print(mensagem)

Saída:

Ele disse: "Isso é incrível!"

3. Caractere de barra invertida \

# Exemplo de uso de barra invertida com f-string
path = "C:\\Users\\Joao\\Documents\\arquivo.txt"
mensagem = f"Caminho do arquivo: {path}"
print(mensagem)

Saída:

Caminho do arquivo: C:\Users\Joao\Documents\arquivo.txt

4. Caractere de Tabulação

# Exemplo de uso de tabulação com \t em f-string
nome = "João"
mensagem = f"Nome:\t{nome}\tIdade:\t30"
print(mensagem)

Saída:

Nome: João       Idade: 30

Exemplo 07: Como usar funções em f-strings

Podemos chamar funções diretamente dentro das chaves {} de uma f-string para obter o resultado da função formatado na string. Vejamos exemplos variados:

1. Usando funções embutidas, como len():

# Exemplo usando função len() em uma f-string
nome = "João"
mensagem = f"Olá, {nome}! Seu nome tem {len(nome)} letras."
print(mensagem)

Saída:

Olá, João! Seu nome tem 4 letras.

2. Função definida pelo usuário:

# Exemplo usando uma função definida pelo usuário em uma f-string
def calcular_dobro(numero):
    return numero * 2

valor = 10
mensagem = f"O dobro de {valor} é {calcular_dobro(valor)}."
print(mensagem)

Saída:

O dobro de 10 é 20.

3. Função que recebe parâmetros múltiplos:

# Exemplo usando função com múltiplos parâmetros em uma f-string
def concatenar_nomes(nome1, nome2):
    return f"{nome1} e {nome2}"

nome_1 = "Alice"
nome_2 = "Bob"
mensagem = f"Os nomes concatenados são: {concatenar_nomes(nome_1, nome_2)}."
print(mensagem)

Saída:

Os nomes concatenados são: Alice e Bob.

4. Função com formatação:

# Exemplo usando função format() em uma f-string
def formatar_nome(nome):
    return nome.upper()

nome = "Alice"
mensagem = f"Olá, {formatar_nome(nome)}. Bem-vindo(a)!"
print(mensagem)

Saída:

Olá, ALICE. Bem-vindo(a)!

Conclusão

As f-strings tornam a manipulação e formatação de strings mais simples, legível e eficiente, sendo um recurso importante e que vale a pena conhecer para usar ao criar scripts em Python, facilitando a vida dos desenvolvedores.

Colabore com a Bóson Treinamentos

Ajude o canal adquirindo meus cursos na Udemy:

Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: https://www.amazon.com.br/shop/bosontreinamentos

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*