Diferentes maneiras de formatação de string em Python: os 3 principais métodos
Publicados: 2021-02-23A formatação de strings é um recurso essencial nas linguagens de programação para formatar ou inserir valores e posições especificados pelo usuário nas strings. A linguagem C tinha uma maneira de fazer isso com a qual você pode estar familiarizado se tiver alguma experiência com a linguagem C. Python, no entanto, suporta não 1, nem 2, mas 3 maneiras diferentes de fazer formatação de strings. Cada maneira tem suas vantagens e desvantagens que veremos neste tutorial. Veremos também qual dos 3 métodos é o mais utilizado e eficiente.
Aprenda cursos online de ciência de dados das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Ao final deste tutorial, você saberá o seguinte:
- Diferentes formas de formatação de strings
- Seu uso com exemplos
- Qual caminho é o mais preferido
Índice
Diferentes maneiras de formatação de strings
O Python vem recebendo várias atualizações para melhorar a formatação de strings. Vamos passar por cada um deles um por um.
Método 1: formatação de string de estilo C
Python inclui a forma antiga de formatação de strings usando caracteres especiais para cada tipo de dados. Este bom e velho método de formatação de strings foi adotado da linguagem C e ainda é muito eficaz. Um especificador de formato de string “%” seguido por um caractere dedicado para cada tipo de dados é usado para formatar as strings.
Vamos a um pequeno exemplo para entender isso:
número = 8 nome = “pinkman” print("Nome é %s e número é %d" %( nome, num)) |
#Saída >> “O nome é pinkman e o número é 8” |
Como você vê, o especificador de formato %s foi usado para formatar o nome da string e %d foi usado para formatar o número inteiro. Da mesma forma, também existe um especificador de formato para um float. Vamos verificar isso também.
número = 4,32 lis = [ 1 , 3 , 5 ] print( “lista é %s e float é %f” %(lis, num)) |
#Saída >> lista é [ 1 , 3 , 5 ] e float é 4,320000 |
No exemplo acima, eu uso o especificador de formato %f para formatar o valor float. Duas coisas a serem observadas aqui. Um, o valor float é impresso como 4,320000 e não apenas 4,32. Por quê então? Isso ocorre porque o Python, por padrão, usa uma precisão de 6 pontos decimais para floats. Segundo, imprimi uma lista usando o especificador de formato de string. Isso não significa que o especificador de formato %s pode receber qualquer tipo de dados. Ele apenas converte em string e imprime. Portanto, a lista impressa é essencialmente uma string e não uma lista.
Tudo bem, então como especificar quantas precisão de ponto decimal é necessária?
print(“lista é %se float com precisão de 2 pontos é %.2f” %(lis, num)) |
#Saída >> lista é [ 1 , 3 , 5 ] e float é 4,32 |
Outro ponto a ser observado aqui é que precisamos fornecer as variáveis na ordem em que são usadas na string. Se a ordem for alterada, a saída será configurada para ser afetada de acordo. Uma alternativa para não exigir que forneçamos as variáveis na ordem correta todas as vezes é usar a formatação de strings de uma maneira ligeiramente diferente.
print(“lista é %(a)s e float é %(b)f” %{“b”: num, “a”: lis}) |
#Saída >> lista é [ 1 , 3 , 5 ] e float é 4,320000 |
E como você vê, isso é muito complicado de escrever.
Então, apenas para resumir, os 3 especificadores de formato mais usados são:
- %s para strings
- %d para inteiros
- %.<precisão decimal>f para floats
Método 2: Nova formatação de string de estilo
O Python 3 introduziu uma maneira melhor de formatar strings usando um método format() em strings. Um espaço reservado é usado colocando colchetes e o método de formato contém as variáveis que precisam ser colocadas nessas posições na string. Vamos dar uma olhada em um pequeno exemplo para entender isso.
nome = “skyler” print("Oi, meu nome é {}".format(name)) |
#Saída >> Oi, meu nome é skyler |
Isso é muito melhor do que a formatação de estilo antigo que vimos acima. As chaves agem como um espaço reservado para o nome da variável que contém uma string. Observe que com o método format não precisamos especificar o tipo de dados da variável como fizemos na formatação de estilo antigo.
Um exemplo com números também:
número = 3 inteiro = 4,34 nome = “jessy” print( “Oi, meu nome é {}, número é {} e float é {}” .format(name, num, int)) |
#Saída >> Oi, meu nome é jessy, número é 3 e float é 4,34 |
Arrumado! Como você vê, ele precisa que as variáveis sejam passadas para o método format na ordem em que foram usadas na string. Outra maneira de usar o método format não exigindo que passemos todas as variáveis na ordem correta:
print("Oi, meu nome é {name}, número é {num} e float é {int}".format(int=int, num=num , name=name)) |
#Saída >> Oi, meu nome é jessy, número é 3 e float é 4,34 |
No exemplo acima, vemos que quando as variáveis são explicitamente mencionadas nos espaços reservados, a necessidade de passá-las para o método format na ordem correta não é mais necessária.
Também podemos passar a posição da variável nos placeholders para acompanhá-los melhor.
print("Oi, meu nome é {0}, número é {1} e float é {2}".format(name, num, int)) |
#Saída >> Oi, meu nome é jessy, número é 3 e float é 4,34 |
Método 3: Usando F-Strings
Introduzido no Python 3.6, f-strings é a maneira mais fácil e eficiente de fazer formatação de strings. Eles também são chamados de literais de string formatados. Eles usam o literal f no início da string para dizer ao python para tratá-la como uma string formatada. Os espaços reservados contêm as variáveis reais que precisam ser colocadas nessa posição.
Vamos dar uma olhada em um exemplo.
nome = “heisenberg” bill = 100.43print(f"O nome é {name} e a conta é {bill}") |
#Saída >> O nome é heisenberg e a conta é 100,43 |
Isso foi bem fácil. Além disso, também podemos colocar expressões diretamente em vez de variáveis.
a = 5 b = 8 print( f"A soma é {a+b} " ) |
#Saída >> A soma é 13 |
Também podemos chamar as funções diretamente e obter sua saída nos literais de string.
print( f"O nome é {name.upper()} " ) |
#Saída >> O nome é HEISENBERG |
Além disso, podemos usar as strings f para retornar diretamente o valor das funções também.
def combinador(nome, idade, dinheiro): return f”{name} tem idade {age} e tem salário {money}” |
Saul Goodman tem 45 anos e salário de 2.000.000 |
Como vemos, quando passamos as funções diretamente para os placeholders, ele chama as funções e coloca diretamente as saídas entre chaves. Claramente, este método de formatação de strings é o mais eficiente e fácil de escrever.
Checkout: Perguntas e respostas da entrevista em Python
Antes de você ir
A formatação de strings é uma tarefa regular e a forma como o Python introduziu o método format e as strings f tornam muito fácil para as pessoas que trabalham com Python. As f-strings são a maneira mais usada e preferida de trabalhar com a formatação de strings, pois facilita muito a escrita e a manutenção. Além disso, torna o código mais Pythonico também! Sob o capô, as strings f usam o protocolo __format__. O literal f é apenas um açúcar sintático que o python oferece a seus usuários para facilitar a escrita de formatação de string.
Se você está curioso para aprender sobre ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1 -on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.
1. O método string format() integrado do Python transforma uma string fornecida em uma saída mais útil. A função format() em Python3 é um dos métodos de formatação de strings que permite várias substituições, bem como formatação de valores. O método format() usa formatação posicional para concatenar itens dentro de uma string. Adicione um argumento extra ao seu método de impressão no Python 3 para informar ao computador que você não deseja que a próxima string esteja em uma nova linha. Considere o seguinte cenário. 1. Eles são objetos string se adquirirmos um valor float através da entrada do usuário através do terminal, bem como lendo-o de um arquivo. Como resultado, devemos convertê-los explicitamente para float para realizar as operações necessárias, como adição, multiplicação e assim por diante.Quais métodos de formatação no Python 3 permitem várias substituições e formatação de valor?
2. A string pode ser formatada usando vários pares de chaves. Se outra substituição de variável for necessária em uma string longa, o segundo conjunto de chaves pode ser adicionado e o segundo valor passado para o procedimento.
3. A função format() em Python aceita qualquer número de parâmetros. No entanto, ele é principalmente separado nos dois tipos de parâmetros a seguir.
uma. Parâmetros posicionais são uma lista de parâmetros que podem ser recuperados colocando o índice do parâmetro entre chaves (índice).
b. Parâmetros de palavra-chave – Esta é uma lista de parâmetros key=value que podem ser acessados usando a chave do parâmetro dentro de chaves.
4. O método format() retorna uma string que foi formatada. A função format() lê o tipo de argumentos fornecidos a ela e os formata de acordo com os códigos de formato na string. Como você imprime sem uma nova linha no Python 3?
print('Bem vindo!', end = ')
Neste caso, qualquer outra função de impressão aparecerá na mesma linha. Podemos converter string para float em Python?
2. O método float() em Python pode ser usado para converter uma string em um float. É uma função interna para converter um número de ponto flutuante em um objeto. Internamente, a função float() chama a função __float__() do objeto fornecido.