As f-string do Python fornecem uma maneira mais legível, concisa e menos sujeita a erros de formatar strings do que a formatação de string tradicional. Eles vêm com recursos úteis que certamente serão úteis no uso diário. Vamos dar uma olhada em alguns deles.


Interpolação de String

De longe, o recurso de f-string mais usado é a interpolação de string. Tudo o que você precisa fazer é envolver o valor ou variável entre chaves ({}) e pronto.


 

# string original

minha_string = 'Macacos'  

 

valor_numerico = 10  

 

print(f'{valor_numerico} {minha_string}')

 

# 10 Macacos

 



Operações matemáticas

Não sintaticamente, ao contrário dos nomes de variáveis, você também pode realizar operações matemáticas em f-string. Você pode colocar a expressão matemática entre as chaves e,  obterá a expressão e seu resultado.


 

# string original

minha_string = 'Macacos'  

 

valor_numerico = 10  

 

print(f'{valor_numerico % 2} {minha_string}')

 


Representação para impressão

Além da interpolação de string simples, você pode desejar obter a representação para impressão de um valor. Isso já é fácil de fazer usando a função repr(). As f-string fornecem uma sintaxe muito mais curta, adicionando um !r dentro das chaves.

 

# string original

minha_string = 'Macacos'  

 

valor_numerico = 10  

 

print(f'{valor_numerico % 2} {minha_string!r}')

 

# 0 'Macacos'

 



Formatação de número

Além disso, f-string também podem ser usadas para formatação ,  daí o f no nome. Para adicionar formatação a um valor, você pode adicionar dois pontos (:) seguido por um especificador de formato. Isso também pode ser combinado com o igual, caso você queira imprimir o nome da variável também.


Os números são um ótimo candidato para isso. Se, por exemplo, você deseja cortar um valor numérico para dois dígitos após o decimal, você pode usar o especificador de formato .2f.


 

# string original

minha_string = 'K/h'  

 

valor_numerico = 6.12658

 

print(f'{valor_numerico:.2f} {minha_string}')

 

# 6.13 K/h

 



Formatação de data

Por fim, as datas também podem ser formatadas da mesma forma que os números, usando especificadores de formato. Como de costume,% Y denota o ano completo,% m é o mês e % d é o dia do mês.


 

from datetime import datetime

 

data = datetime.utcnow()

 

print(data)

print(f'{data:%Y-%m-%d}')

 

# 2021-12-17 06:18:19.614797

# 2021-12-17