Strings f em Python: como formatar strings
Ao utilizar uma string f do Python, pode inserir expressões e variáveis complexas diretamente numa cadeia sem necessidade de realizar conversões ou formatações adicionais.
O que são as f strings do Python?
As f strings do Python, também chamadas de literais de cadeia formatados ou cadeias f, são um tipo de formato de cadeia do Python que foi introduzido com a versão Python 3.6. As f strings permitem uma notação mais compacta do que outros métodos de formatação de cadeias, como str.format() ou a concatenação com +, tornando o código mais claro e conciso.
As cadeias f são muito flexíveis e permitem inserir variáveis e expressões em diferentes tipos de dados, como números inteiros, floats, listas ou mesmo expressões e funções, sem necessidade de conversão prévia ou formatação especial. Em geral, as cadeias f do Python são mais rápidas do que outros métodos de formataçã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 utilizadas variáveis ou expressõ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.pythonNo exemplo anterior, a variável name (nome) é substituída por {name}a variável age (idade) por {age} na cadeia f para criar a cadeia final.
Aplicações das strings f do Python
As cadeias f podem ter utilizações muito diversas. A seguir, explicamos as mais importantes.
Realizar cálculos dentro de uma cadeia
As f strings do Python são especialmente úteis quando é necessário realizar operações aritméticas 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 15pythonNeste caso, a soma de num1 e num2 é feita dentro da cadeia f, e o resultado é adicionado diretamente à cadeia final.
Strings f e strings raw em Python
Ao combinar r (referente a strings raw) e f (referente a strings formatadas ou f strings), cria-se um tipo especial de string em Python conhecido como string rf. A string rf apresenta então a funcionalidade das strings raw, que interpretam sequências de escape literalmente, bem como a flexibilidade e o poder das f strings, que permitem incorporar variáveis e expressões diretamente numa string.
name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txtpythonNeste 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 especificar a quantidade de decimais de um número de ponto flutuante na cadeia formatada. Para isso, deve utilizar instruções de formatação:
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142pythonNeste 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 utilizando {value:.3f}. Por fim, imprime-se o resultado, que mostra o valor arredondado com três casas decimais.
Largura e alinhamento
Nas strings f do Python, é possível controlar a aparência dos valores inseridos dentro de um campo especificado através da largura e do alinhamento. Esta função serve para colocar texto ou números numa área específica e alinhá-los à esquerda, à direita ou centralizá-los.
Suponhamos que temos o nome __Alice__ e queremos colocá-lo num campo com dez caracteres de largura à direita. Teríamos de fazer o seguinte:
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, AlicepythonComo o valor tem menos de dez caracteres, ele é alinhado à direita usando {nombre:>10}.
Preencher com zeros ou outros caracteres
Ao preencher com zeros ou outros caracteres, influencia-se o alinhamento dos números de um campo. Isso pode ser útil quando os números devem ser apresentados 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: 000042pythonNeste caso, :06 indica que o número number é introduzido num campo de seis dígitos, pelo que os dígitos em falta são preenchidos com zeros à esquerda.
Para preencher, também é possível especificar caracteres diferentes de zero. Seria utilizada esta sintaxe:
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____python