# 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:

```python
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.
```

No 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:

```python
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
```

Neste 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.

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

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 especificar a quantidade de decimais de um número de ponto flutuante na cadeia formatada. Para isso, deve utilizar **instruções de formatação**:

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

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 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:

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

Como 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**.

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

Neste 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:

```python
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
```


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/strings-f-em-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/strings-f-em-python/) for AI/LLM consumption.