# O que é e como usar Python f-string

Ao fazer uso do recurso Python f-string, você consegue inserir **expressões e variáveis complexas em uma string** de forma direta, sem precisar realizar qualquer conversão ou se preocupar com a formatação. F-strings em Python simplificam a formatação de strings, tornam códigos mais claros e precisos e poupam esforços de desenvolvimento.

## O que é Python f-string?

F-string em Python, ou *formatted string literal*, é um [formato de string em Python](https://www.ionos.com/digitalguide/websites/web-development/python-string-format/ "Formato de string em Python ") introduzido pela versão de Python 3.6. Especialmente desenvolvido para ser aplicado a strings, o recurso de formatação f-string também suporta a realização de cálculos, que podem ser incorporados entre chaves. F-strings em Python permitem que cadeias de caracteres ganhem uma notação mais compacta e objetiva, tornando códigos mais claros e legíveis. Justamente por isso, elas se destacam de outros métodos de formatação, como do `str.format()` ou da concatenação com `+`.

Por ser extremamente flexível, o recurso Python f-string aceita a inserção de variáveis e expressões em diferentes tipos de dados, como em **inteiros, *floats* e listas**, e até em expressões e funções, sem que seja preciso convertê-las ou formatá-las manualmente. Isso quer dizer que f-strings em Python também agilizam e simplificam o trabalho dos desenvolvedores.

## Sintaxe de Python f-string

A estrutura básica de uma f-string em Python é formada pelo **prefixo** `f` ou `F`, seguido da string entre aspas simples `'` ou duplas `"` . Dentro da string, você pode fazer uso de chaves `{}` quando precisar incorporar variáveis ou expressões. Observe o 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.
```

Nessa f-string, substituímos a variável `name` por `{name}` e a variável `age` por `{age}`, para criar uma cadeia de caracteres formatada com as devidas informações.

## Como utilizar Python f-string

Existem diferentes formas de se aplicar e especificar f-strings em códigos escritos em Python.

### Python f-string para realizar cálculos dentro de uma string

Python f-strings são especialmente interessantes a quem deseja realizar **operações aritméticas** dentro de uma string. Com o recurso, você torna-se capaz de definir uma expressão complexa em uma única linha:

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

Nesse exemplo de código, a soma de `num1` e `num2` é realizada dentro de uma f-string, sendo o resultado diretamente apresentado pela string final.

### Python f-string e raw string

A combinação dos prefixos `r` (*raw*) e `f` (*formatted*) cria um tipo especial de string em Python, conhecida como rf-string. Uma rf-string combina a capacidade de uma raw string, de **interpretar literalmente sequências de escape**, com a flexibilidade e a eficiência de uma f-string, que suporta a incorporação direta de variáveis e expressões. O código abaixo ilustra essa associação:

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

Acima, fizemos uso de uma rf-string para especificar um caminho. O uso de `{name}` dentro da rf-string faz com que a variável `name` seja inserida de forma direta. Já o `r` antes da string faz com que a **barra invertida** `\` seja lida como caractere literal, e não como parte de uma sequência de escape.

### Python f-string para precisar números de vírgula flutuante

Ao inserir **instruções de formatação** especiais no seu código, você consegue determinar a quantidade de casas decimais de um número de vírgula flutuante em uma string. Veja:

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

Nesse exemplo, a instrução de formatação `:.3f` ordena que a variável `value` seja arredondada para três casas decimais antes de ser inserida na string formatada.

### Python f-string para definir tamanho e alinhamento

Ao definir o tamanho e o alinhamento de uma f-string em Python, você controla a **exibição dos valores inseridos**, estabelecendo o campo a ser usado. O recurso é útil para encaixar textos e números em áreas de tamanho específico, e também para alinhá-los à esquerda, à direita ou no centro.

No exemplo de código abaixo, desejamos exibir o nome `__Alice__` em um campo de dez caracteres de tamanho, e alinhá-lo à direita:

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

Uma vez que o valor `__Alice__` possui menos de dez caracteres, a especificação `{name:>10}` faz com que ele seja alinhado à direita.

### Python f-string para preencher com zeros ou outros caracteres

O preenchimento com zeros ou outros caracteres influencia o alinhamento de valores que devem ser exibidos em um campo específico. Em situações como essa, f-strings podem ser úteis para exibir números em formatos fixos, como em **horários ou sequências**.

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

Nesse exemplo de código, `:06` indica que o número `number` deve ser inserido em um campo de seis dígitos. Caso faltem caracteres, estes devem ser preenchidos por zeros à esquerda.

Além de zeros, você também pode usar outros caracteres para preencher espaços em strings, como pode ser observado no código abaixo:

```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-br/digitalguide/sites-de-internet/desenvolvimento-web/python-f-strings/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-f-strings/) for AI/LLM consumption.