Curso
A formatação de strings também é conhecida como interpolação de strings. É o processo de inserção de uma string ou variável personalizada em um texto predefinido.
custom_string = "String formatting"
print(f"{custom_string} is a powerful technique")
String formatting is a powerful technique
Como cientista de dados, você a usaria para inserir um título em um gráfico, mostrar uma mensagem ou um erro ou passar uma instrução para uma função.
Métodos de formatação
- Formatação posicional
- Literais de string formatados
- Método de modelo
Método string.format
Colocamos espaços reservados definidos por um par de chaves em um texto. Chamamos o método string.format. Em seguida, passamos o valor desejado para o método. O método substitui os marcadores usando os valores na ordem de aparição substituindo por valor:
'text{}'.format(value)
Formatação posicional
Definimos uma string e inserimos dois espaços reservados. Passamos duas strings para o método, que serão passadas para você obter o seguinte resultado:
print("Machine learning provides {} the ability to learn {}".format("systems", "automatically"))
Machine learning provides systems the ability to learn automatically
Podemos usar variáveis tanto para a string quanto para os valores passados para o método. No código de exemplo abaixo, definimos uma string com espaços reservados e duas outras variáveis. Aplicamos o método de formatação à string usando as duas variáveis definidas. O método lê a string e substitui os espaços reservados pelos valores fornecidos.
my_string = "{} rely on {} datasets"
method = "Supervised algorithms"
condition = "labeled"
print(my_string.format(method, condition))
Supervised algorithms rely on labeled datasets
Reordenação de valores
No exemplo abaixo, você adiciona números de índice aos espaços reservados para reordenar os valores. Isso afeta a ordem em que o método substitui os espaços reservados.
O método os substitui pelos valores na ordem fornecida.
print("{} has a friend called {} and a sister called {}". format("Betty", "Linda", "Daisy"))
Betty has a friend called Linda and a sister called Daisy
Se adicionarmos os números de índice, a ordem de substituição será alterada de acordo.
print("{2} has a friend called {0} and a sister called {1}". format("Betty", "Linda", "Daisy"))
Daisy has a friend called Betty and a sister called Linda
Espaços reservados de nome
Também podemos introduzir argumentos de palavra-chave que são chamados pelo nome da palavra-chave.
No código de exemplo abaixo, inserimos palavras-chave nos espaços reservados. Em seguida, chamamos essas palavras-chave no método de formatação. Em seguida, atribuímos a variável que será passada para cada uma delas, resultando no seguinte resultado.
tool="Unsupervised algorithms"
goal="patterns"
print("{title} try to find {aim} in the dataset".format(title=tool, aim=goal))
Unsupervised algorithms try to find patterns in the dataset
Vamos examinar esse código abaixo. Definimos um dicionário com chaves: ferramenta e meta.
my_methods = {"tool": "Unsupervised algorithms", "goal": "patterns"}
Queremos inserir seus valores em uma string. Dentro dos espaços reservados, podemos especificar o valor associado à ferramenta-chave dos dados variáveis usando a notação de colchetes. Data é o dicionário especificado no método, e tool é a chave presente nesse dicionário.
print('{data[tool]} try to find {data[goal]} in the dataset'.format(data=my_methods))
Assim, obtemos o resultado desejado mostrado abaixo. Cuidado! Você precisa especificar o índice sem usar aspas.
Unsupervised algorithms try to find patterns in the dataset
Especificador de formato
Você também pode especificar o formato dentro de chaves. Isso define como os valores individuais são apresentados. Aqui, usaremos o especificador de índice de sintaxe de dois pontos. Um dos especificadores de formato mais comuns é o float, representado por f
. No código, especificamos que o valor passado com o índice 0 será um float.
print("Only {0:f}% of the {1} produced worldwide is {2}!". format(0.5155675, "data", "analyzed"))
Only 0.515567% of the data produced worldwide is analyzed!
Também poderíamos adicionar .2f
, indicando que queremos que o float tenha duas casas decimais, conforme visto na saída resultante.
print("Only {0:.2f}% of the {1} produced worldwide is {2}!".format(0.5155675, "data", "analyzed"))
Only 0.52% of the data produced worldwide is analyzed!
Formatação datetime
O Python tem um módulo chamado datetime que nos permite, por exemplo, obter a hora e a data de hoje.
from datetime import datetime
print(datetime.now())
2020-08-08 06:28:42.715243
Porém, como o formato retornado é muito específico, você pode usar o especificador de formato, como %y-%m-%d-%h-%m
, para ajustar o formato a algo mais familiar para nós!
print("Today's date is {:%Y-%m-%d %H:%M}".format(datetime.now()))
Today's date is 2020-08-08 06:29
Exemplo interativo
No exemplo a seguir, você atribuirá as substrings que vão do 4º ao 19º caractere e do 22º ao 44º caractere de wikipedia_article
às variáveis first_pos
e second_pos
, respectivamente. Ajuste as strings para que fiquem em letras minúsculas. Por fim, imprima as variáveis first_pos
e second_pos
.
# Assign the substrings to the variables
first_pos = wikipedia_article[3:19].lower()
second_pos = wikipedia_article[21:44].lower()
Quando executamos o código acima, ele produz o seguinte resultado:
computer science
artificial intelligence
Para saber mais sobre a formatação posicional, assista a este vídeo do nosso curso Expressões regulares em Python.
Este conteúdo foi extraído do curso Expressões regulares em Python do DataCamp, ministrado por Maria Eugenia Inzaugarat.
Confira nosso tutorial sobre strings em Python.