Pular para o conteúdo principal
InicioTutoriaisPython

Formatação de f-string em Python

Saiba mais sobre a técnica de formatação f-string no Python 3.6. Neste tutorial, você verá as vantagens que ele oferece e verá alguns exemplos de casos de uso.
abr. de 2024  · 5 min leer

1. Introdução

O que é formatação de strings?

A formatação de strings é o design atraente de suas strings usando técnicas de formatação fornecidas pela linguagem de programação específica. Temos diferentes técnicas de formatação de strings no Python. Agora vamos explorar a nova técnica de formatação f-string.

f-string é avaliada no tempo de execução do programa. É rápido em comparação com os métodos anteriores.

O f-string tem uma sintaxe fácil em comparação com as técnicas anteriores de formatação de strings do Python. Exploraremos cada parte dessa formatação usando diferentes exemplos.

Run and edit the code from this tutorial online

Run Code

1.1. Syntax

Cada instrução f-string consiste em duas partes: uma é o caractere f ou F, e a outra é uma string que queremos formatar. A cadeia de caracteres será colocada entre aspas simples, duplas ou triplas.

Vamos ver a sintaxe.

## we can also use F, '', ''''', """"""'
f"string"

No lugar da string, temos que colocar nossa frase que será formatada.

2. Exibição de variáveis

Anteriormente, usamos o método str.format() principalmente para formatar as cadeias de caracteres. Mas o tempo mudou, temos um novo método para tornar nossos esforços duas vezes mais rápidos.

As variáveis entre chaves { } são exibidas na saída como uma instrução de impressão normal. Vejamos um exemplo.

## declaring variables
name = "Datacamp"
type_of_company = "Educational"

## enclose your variable within the {} to display it's value in the output
print(f"{name} is an {type_of_company} company.")
Datacamp is an Educational company.

Obtivemos os valores das variáveis na saída. Veja, é fácil. Também podemos substituir o f por F.

## declaring variables
name = "Datacamp"
type_of_company = "Educational"

## enclose your variable within the {} to display it's value in the output
print(F"{name} is an {type_of_company} company.")
Datacamp is an Educational company.

f é inferior ou superior, funcionará da mesma forma.

3. Expressões

E se pudermos avaliar expressões como aritmética, chamadas de função, etc., em uma string? É legal, certo! Sim! É muito, muito interessante usar expressões dentro de uma string. f-string nos permite avaliar expressões dentro da string.

Basta colocar a expressão dentro de { } para avaliar. f-string a avalia no tempo de execução do programa. É um excelente recurso que economiza tempo e código.

Vejamos exemplos dos diferentes tipos de expressões.

## arithmetic expression
print(f"{5 * 5}")
25

Também podemos chamar funções dentro de { }. Vamos definir uma função greet() e chamá-la na string f

def greet(name):
    return "Hello, " + name
## calling the function using f-string
name = "Datacamp"
print(f"{greet(name)}")
Hello, Datacamp

Da mesma forma, também podemos chamar os métodos predefinidos. Vejamos.

## calling the 'title' method which makes the first letter of every word upper
string = "datacamp is an educational company."
print(f"{string.title()}")
Datacamp Is An Educational Company.

O que mais podemos fazer com a corda f? Podemos exibir o objeto? Sim, podemos. É o mesmo que quando mostramos a saída das variáveis.

class Sample:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    ## this method will be called when we print the object
    def __str__(self):
        return f'{self.name} is {self.age} years old.'
john = Sample("John", 19)

## it'll wake up the __str__() method
print(f"{john}")
John is 19 years old.

4. Caracteres especiais

E se quisermos exibir caracteres especiais como {}, \', \"?, que são usados internamente pelo Python para um significado especial. Podemos usar o caractere de escape dentro da string f? Vamos ver as respostas a essas perguntas.

4.1. Citações

Podemos usar quaisquer aspas {simples, duplas ou triplas} na string f. Temos que usar o caractere de escape para imprimir aspas. A expressão f-string não nos permite usar a barra invertida. Temos que colocá-lo fora do { }.

Vamos ver isso por meio de exemplos.

name = "Datacamp"

## displaying single quotations
print(f"Hello, \'{name}\'")

print()

## displaying double quotations
print(f"Hello, \"{name}\"")
Hello, 'Datacamp'

Hello, "Datacamp"

Vamos ver outros tipos de citações em f-strings.

f'{"Hello, Datacamp"}'
'Hello, Datacamp'
f"{'Hello, Datacamp'}"
'Hello, Datacamp'
f"""Hello, Datacamp"""
'Hello, Datacamp'
f'''Hello, Datacamp'''
'Hello, Datacamp'

Também podemos incluir { } dentro das três aspas.

Não é possível usar as barras invertidas dentro de { } em f-string. Você receberá um erro se eles forem incluídos dentro de { }.

print(f"{\"Datacamp\"}")
  File "<ipython-input-60-b9a2502d6274>", line 1
    print(f"{\"Datacamp\"}")
         ^
SyntaxError: f-string expression part cannot include a backslash

4.2. Aparelhos ortodônticos

Temos que usar um conjunto duplo de chaves para imprimir as chaves usando f-string. Vejamos um exemplo.

print(f"{{Datacamp}}")
{Datacamp}

Se você quiser exibir dois conjuntos de chaves usando f-string, terá que usar quatro conjuntos de chaves.

print(f"{{{{Datacamp}}}}")
{{Datacamp}}

5. Dicionários

Precisamos ter um pouco de cuidado ao lidar com chaves de dicionário dentro da string f. Você precisa usar uma cotação diferente para a chave do dicionário e a string f. Você não tem permissão para usar as mesmas aspas para uma chave de dicionário como se fosse uma string f.

person = {"name": "John", "age": 19}
print(f"{person['name']} is {person['age']} years old.")
John is 19 years old.

Você não tem permissão para usá-lo da seguinte forma no caso de dicionários.

person = {"name": "John", "age": 19}
print(f'{person['name']} is {person['age']} years old.')
  File "<ipython-input-65-6849ff0810ae>", line 2
    print(f'{person['name']} is {person['age']} years old.')
                        ^
SyntaxError: invalid syntax

Conclusão

Espero que você tenha aprendido algo novo em Python ao ler este tutorial. Para saber mais sobre cadeias de caracteres e técnicas de formatação anteriores, consulte este tutorial no Datacamp. Além disso, confira o curso Expressões regulares em Python do DataCamp.

Boa programação :)

Temas

Cursos de Python

Course

Introduction to Python

4 hr
5.5M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
See DetailsRight Arrow
Start Course
Veja MaisRight Arrow
Relacionado

blog

Como aprender Python do zero em 2024: um guia especializado

Descubra como aprender Python, suas aplicações e a demanda por competências em Python. Comece sua jornada em Python hoje mesmo ​com nosso guia detalhado.
Matt Crabtree's photo

Matt Crabtree

19 min

blog

Mais de 60 projetos Python para todos os níveis de conhecimento

60 ideias de projetos de ciência de dados que os cientistas de dados podem usar para criar um portfólio sólido, independentemente de sua especialização.
Bekhruz Tuychiev's photo

Bekhruz Tuychiev

16 min

tutorial

Como comentar um bloco de código em Python

O uso de comentários é fundamental para trabalhar efetivamente com Python. Neste breve tutorial, aprenda a comentar um bloco de código em Python.
Adel Nehme's photo

Adel Nehme

3 min

tutorial

Como aparar uma cadeia de caracteres em Python: Três métodos diferentes

Aprenda os fundamentos do corte de caracteres à esquerda e à direita de uma string em Python.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Declaração de caso de troca do Python: Um guia para iniciantes

Explore o match-case do Python: um guia sobre sua sintaxe, aplicativos em ciência de dados, ML e uma análise comparativa com o switch-case tradicional.
Matt Crabtree's photo

Matt Crabtree

5 min

tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

See MoreSee More