Nesta etapa, você aprenderá maneiras modernas e eficazes de formatar strings em Python. Isso é crucial para criar saídas dinâmicas e legíveis, incorporando variáveis e expressões dentro das strings.
Embora você possa usar o operador + para concatenar strings, isso se torna desajeitado ao misturar strings com tipos que não são strings, como números, pois você deve convertê-los manualmente usando str().
Python oferece soluções melhores. O método mais comum e recomendado é usar f-strings (formatted string literals).
As f-strings, introduzidas no Python 3.6, fornecem uma maneira concisa e legível de incorporar expressões dentro das strings. Basta prefixar a string com f ou F e escrever as expressões dentro de chaves {}.
Abra o arquivo string_formatting.py e adicione o seguinte código:
## string_formatting.py
name = "Alice"
age = 30
## Usando uma f-string para incorporar variáveis
greeting = f"Hello, my name is {name} and I am {age} years old."
print(greeting)
## Você também pode incorporar expressões diretamente
print(f"In 5 years, I will be {age + 5} years old.")
Salve e execute o script:
python ~/project/string_formatting.py
Hello, my name is Alice and I am 30 years old.
In 5 years, I will be 35 years old.
As f-strings também permitem controlar a formatação dos valores incorporados usando especificadores de formato, que seguem dois pontos (:) dentro das chaves.
Adicione os seguintes exemplos a string_formatting.py:
## string_formatting.py
## ... (código anterior) ...
pi = 3.14159265
## Formatar um float para 2 casas decimais
print(f"The value of pi is approximately {pi:.2f}")
## Preencher um número com zeros à esquerda até uma largura de 8
order_id = 45
print(f"Order ID: {order_id:08}")
## Alinhar texto dentro de um espaço definido (largura de 10)
## < (esquerda), ^ (centro), > (direita)
text = "Python"
print(f"'{text:<10}'")
print(f"'{text:^10}'")
print(f"'{text:>10}'")
## Adicionar vírgula como separador de milhar
large_number = 1234567890
print(f"A large number: {large_number:,}")
Salve e execute o script novamente:
python ~/project/string_formatting.py
Hello, my name is Alice and I am 30 years old.
In 5 years, I will be 35 years old.
The value of pi is approximately 3.14
Order ID: 00000045
'Python '
' Python '
' Python'
A large number: 1,234,567,890
Antes das f-strings, o método str.format() era a maneira preferida de formatar strings. Ele funciona colocando chaves de espaço reservado {} na string e, em seguida, passando valores para o método format().
Adicione este exemplo ao final de string_formatting.py:
## string_formatting.py
## ... (código anterior) ...
## Usando o método str.format()
item = "moon"
cost = 99.95
statement = "The {} costs {:.2f} dollars.".format(item, cost)
print(statement)
Salve e execute o arquivo para ver a saída:
python ~/project/string_formatting.py
Hello, my name is Alice and I am 30 years old.
In 5 years, I will be 35 years old.
The value of pi is approximately 3.14
Order ID: 00000045
'Python '
' Python '
' Python'
A large number: 1,234,567,890
The moon costs 99.95 dollars.
Embora o str.format() ainda seja útil, as f-strings são geralmente mais legíveis e rápidas.