Pular para o conteúdo principal

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.
24 de abr. de 2024  · 5 min de leitura

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.

Execute e edite o código deste tutorial online

Executar código

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

curso

Introduction to Python

4 hr
5.9M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial de strings em Python

Neste tutorial, você aprenderá tudo sobre as cadeias de caracteres do Python: fatiamento e encadeamento, manipulação e formatação com a classe Formatter, cadeias de caracteres f, modelos e muito mais!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Tutorial de docstrings em Python

Saiba mais sobre os Docstrings do Python. Encontre diferentes exemplos e tipos de formatos de docstrings para Sphinx, Numpy e Pydoc.
Aditya Sharma's photo

Aditya Sharma

15 min

tutorial

Função Python Print()

Saiba como você pode aproveitar os recursos de uma simples função Python Print de várias maneiras com a ajuda de exemplos.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Tutorial e exemplos de funções e métodos de lista do Python

Saiba mais sobre as funções e os métodos da Lista do Python. Siga exemplos de código para list() e outras funções e métodos Python agora!
Abid Ali Awan's photo

Abid Ali Awan

7 min

tutorial

Python New Line: Métodos para formatação de código

Descubra como usar \n para inserir quebras de linha em cadeias de caracteres e instruções print(). Use o parâmetro end para manter a saída em uma única linha. Aprimore suas habilidades de manipulação de arquivos com o os.linesep para gerenciar texto em diferentes sistemas.
Samuel Shaibu's photo

Samuel Shaibu

8 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

See MoreSee More