Resumo : neste tutorial, você aprenderá sobre strings F do Python e como usá-las para formatar strings e tornar seu código mais legível.
Introdução às strings F do Python
Python 3.6 introduziu as strings f que permitem formatar strings de texto de forma mais rápida e elegante. As strings f fornecem uma maneira de incorporar variáveis e expressões dentro de uma string literal usando uma sintaxe mais clara que o format()
método.
Por exemplo:
name = 'John'
s = f'Hello, {name}!'
print(s)
Linguagem de código: Python ( python )
Saída:
Hello, John!
Linguagem de código: Python ( python )
Como funciona.
- Primeiro, defina uma variável com o valor
'John'
. - Em seguida, coloque a
name
variável entre chaves{}
na string literal. Observe que você precisa prefixar a string com a letraf
para indicar que é uma string F. Também é válido se você usar a letra maiúscula (F
). - Terceiro, imprima a string s.
É importante observar que o Python avalia as expressões em f-string em tempo de execução. Ele substitui as expressões dentro de uma string f por seus valores.
Exemplos de string F em Python
O exemplo a seguir chama o método upper() para converter o nome em letras maiúsculas dentro das chaves de uma string f:
name = 'John'
s = F'Hello, {name.upper()}!'
print(s)
Linguagem de código: Python ( python )
Saída:
Hello, JOHN!
Linguagem de código: Python ( python )
O exemplo a seguir usa várias chaves dentro de uma string F:
first_name = 'John'
last_name = 'Doe'
s = F'Hello, {first_name} {last_name}!'
print(s)
Linguagem de código: Python ( python )
Saída:
Hello, John Doe!
Linguagem de código: Python ( python )
Este exemplo é equivalente ao exemplo acima, mas usa o join()
método:
first_name = 'John'
last_name = 'Doe'
s = F'Hello, {" ".join((first_name, last_name))}!'
print(s)
Linguagem de código: Python ( python )
Saída:
Hello, John Doe!
Linguagem de código: Python ( python )
Strings F multilinha
Python permite que você tenha strings F multilinhas. Para criar uma string F multilinha, você coloca a letra f
em cada linha. Por exemplo:
name = 'John'
website = 'PythonTutorial.net'
message = (
f'Hello {name}. '
f"You're learning Python at {website}."
)
print(message)
Linguagem de código: Python ( python )
Saída:
Hello John. You're learning Python on PythonTutorial.net.
Linguagem de código: Python ( python )
Se quiser espalhar uma string f por várias linhas, você pode usar uma barra invertida (\) para escapar do caractere de retorno assim:
name = 'John'
website = 'PythonTutorial.net'
message = f'Hello {name}. ' \
f"You're learning Python at {website}."
print(message)
Linguagem de código: Python ( python )
O exemplo a seguir mostra como usar aspas triplas ( """
) com uma string f:
name = 'John'
website = 'PythonTutorial.net'
message = f"""Hello {name}.
You're learning Python at {website}."""
print(message)
Linguagem de código: Python ( python )
Saída:
Hello John.
You're learning Python at PythonTutorial.net.
Linguagem de código: Python ( python )
aparelho encaracolado
Ao avaliar uma string F, o Python substitui chaves duplas por uma única chave. No entanto, as chaves duplas não significam o início de uma expressão.
Python não avaliará a expressão dentro das chaves duplas e substituirá as chaves duplas por uma única. Por exemplo:
s = f'{{1+2}}'
print(s)
Linguagem de código: Python ( python )
Saída:
{1+2}
Linguagem de código: Python ( python )
O seguinte mostra uma string F com chaves triplas:
s = f'{{{1+2}}}'
print(s)
Linguagem de código: Python ( python )
Saída:
{3}
Linguagem de código: Python ( python )
Neste exemplo, Python avalia {1+2}
como uma expressão, que retorna 3. Além disso, ele substitui as chaves duplicadas restantes por uma única.
Para adicionar mais chaves à string de resultado, você usa mais do que chaves triplas:
s = f'{{{{1+2}}}}'
print(s)
Linguagem de código: Python ( python )
Saída:
{{1+2}}
Linguagem de código: Python ( python )
Neste exemplo, Python substitui cada par de chaves duplas por uma única chave.
A ordem de avaliação das expressões em strings F do Python
Python avalia as expressões em uma string f na ordem da esquerda para a direita. Isso é óbvio se as expressões tiverem efeitos colaterais como o exemplo a seguir:
def inc(numbers, value):
numbers[0] += value
return numbers[0]
numbers = [0]
s = f'{inc(numbers,1)},{inc(numbers,2)}'
print(s)
Linguagem de código: Python ( python )
Saída:
1,3
Linguagem de código: Python ( python )
Neste exemplo, a seguinte chamada de função aumenta o primeiro número na lista de números em um:
inc(numbers,1)
Linguagem de código: Python ( python )
Após esta chamada, numbers[0]
é um. E a segunda chamada aumenta o primeiro número da lista de números em 2, o que resulta em 3.
Formatar números usando strings F
O exemplo a seguir usa uma string f para formatar um número inteiro como hexadecimal:
number = 16
s = f'{number:x}'
print(s) # 10
Linguagem de código: PHP ( php )
O exemplo a seguir usa a string f para formatar um número como notação científica:
number = 0.01
s = f'{number:e}'
print(s) # 1.000000e-02
Linguagem de código: PHP ( php )
Se quiser preencher zeros no início do número, use o formato f-string da seguinte maneira:
number = 200
s = f'{number: 06}'
print(s) # 00200
Linguagem de código: PHP ( php )
O 06 é o número total da sequência numérica do resultado, incluindo os zeros à esquerda.
Para especificar o número de casas decimais, você também pode usar a string f:
number = 9.98567
s = f'{number: .2f}'
print(s) # 9.99
Linguagem de código: PHP ( php )
Observe que a string f também realiza arredondamento neste caso.
Se o número for muito grande, você pode usar o separador de números para facilitar a leitura:
number = 400000000000
s = f'{number: ,}' # also can use _
print(s) # 400,000,000,000
Linguagem de código: PHP ( php )
Para formatar um número como uma porcentagem, use o seguinte formato de string f:
number = 0.1259
s = f'{number: .2%}'
print(s) # 12.59%
s = f'{number: .1%}'
print(s) # 12.5%
Linguagem de código: PHP ( php )
Python possui regras de formato mais sofisticadas que você pode consultar no link a seguir .
Resumo
- As strings F do Python fornecem uma maneira elegante de formatar strings de texto.
- Python substitui o resultado de uma expressão incorporada entre chaves
{}
em uma string f em tempo de execução.