Ao utilizar uma string f do Python, pode inserir ex­pres­sões e variáveis complexas di­re­ta­mente numa cadeia sem ne­ces­si­dade de realizar con­ver­sões ou for­ma­ta­ções adi­ci­o­nais.

O que são as f strings do Python?

As f strings do Python, também chamadas de literais de cadeia for­ma­ta­dos ou cadeias f, são um tipo de formato de cadeia do Python que foi in­tro­du­zido com a versão Python 3.6. As f strings permitem uma notação mais compacta do que outros métodos de for­ma­ta­ção de cadeias, como str.format() ou a con­ca­te­na­ção com +, tornando o código mais claro e conciso.

As cadeias f são muito flexíveis e permitem inserir variáveis e ex­pres­sões em di­fe­ren­tes tipos de dados, como números inteiros, floats, listas ou mesmo ex­pres­sões e funções, sem ne­ces­si­dade de conversão prévia ou for­ma­ta­ção especial. Em geral, as cadeias f do Python são mais rápidas do que outros métodos de for­ma­ta­ção de cadeias.

A sintaxe das f strings

A sintaxe das f strings é bastante simples. É composta por um prefixo com a letra f ou F seguido de uma cadeia escrita entre aspas (duplas ou simples). Dentro da cadeia, podem ser uti­li­za­das variáveis ou ex­pres­sões que são escritas entre chaves {}. Por exemplo:

name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.
python

No exemplo anterior, a variável name (nome) é subs­ti­tuída por {name}a variável age (idade) por {age} na cadeia f para criar a cadeia final.

Apli­ca­ções das strings f do Python

As cadeias f podem ter uti­li­za­ções muito diversas. A seguir, ex­pli­ca­mos as mais im­por­tan­tes.

Realizar cálculos dentro de uma cadeia

As f strings do Python são es­pe­ci­al­mente úteis quando é ne­ces­sá­rio realizar operações arit­mé­ti­cas dentro de uma string. Graças a elas, é possível definir uma expressão complexa numa única linha, como mostra este exemplo:

num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15
python

Neste caso, a soma de num1 e num2 é feita dentro da cadeia f, e o resultado é adi­ci­o­nado di­re­ta­mente à cadeia final.

Strings f e strings raw em Python

Ao combinar r (referente a strings raw) e f (referente a strings for­ma­ta­das ou f strings), cria-se um tipo especial de string em Python conhecido como string rf. A string rf apresenta então a fun­ci­o­na­li­dade das strings raw, que in­ter­pre­tam sequên­cias de escape li­te­ral­mente, bem como a fle­xi­bi­li­dade e o poder das f strings, que permitem in­cor­po­rar variáveis e ex­pres­sões di­re­ta­mente numa string.

name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
python

Neste código, a cadeia rf é utilizada para definir um caminho. Ao utilizar {name} dentro da cadeia rf, provoca-se a inserção direta da variável name, enquanto que a r situada à frente da cadeia faz com que a barra invertida \ seja tratada como um caractere literal e não como parte de uma sequência de escape.

A precisão dos números em ponto flutuante

Pode es­pe­ci­fi­car a quan­ti­dade de decimais de um número de ponto flutuante na cadeia formatada. Para isso, deve utilizar ins­tru­ções de for­ma­ta­ção:

value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
python

Neste exemplo, define-se uma variável value que contém um número decimal. Em seguida, utiliza-se uma string f para formatar este valor com três casas decimais uti­li­zando {value:.3f}. Por fim, imprime-se o resultado, que mostra o valor ar­re­don­dado com três casas decimais.

Largura e ali­nha­mento

Nas strings f do Python, é possível controlar a aparência dos valores inseridos dentro de um campo es­pe­ci­fi­cado através da largura e do ali­nha­mento. Esta função serve para colocar texto ou números numa área es­pe­cí­fica e alinhá-los à esquerda, à direita ou cen­tra­lizá-los.

Su­po­nha­mos que temos o nome __Alice__ e queremos colocá-lo num campo com dez ca­rac­te­res de largura à direita. Teríamos de fazer o seguinte:

name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello,      Alice
python

Como o valor tem menos de dez ca­rac­te­res, ele é alinhado à direita usando {nombre:>10}.

Preencher com zeros ou outros ca­rac­te­res

Ao preencher com zeros ou outros ca­rac­te­res, in­flu­en­cia-se o ali­nha­mento dos números de um campo. Isso pode ser útil quando os números devem ser apre­sen­ta­dos num formato fixo, por exemplo, para indicar horas ou valores numéricos.

number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
python

Neste caso, :06 indica que o número number é in­tro­du­zido num campo de seis dígitos, pelo que os dígitos em falta são pre­en­chi­dos com zeros à esquerda.

Para preencher, também é possível es­pe­ci­fi­car ca­rac­te­res di­fe­ren­tes de zero. Seria utilizada esta sintaxe:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Ir para o menu principal