Strings F em Python

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 namevariável entre chaves {}na string literal. Observe que você precisa prefixar a string com a letra fpara 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 fem 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,3Linguagem 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)  # 10Linguagem 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-02Linguagem 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)  # 00200Linguagem 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.99Linguagem 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,000Linguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *