Neste artigo, aprenderemos sobre a interpolação de strings python. Python suporta várias maneiras de formatar strings de texto e isso inclui% -formatting, sys.format (), string.Template e f-strings.
A interpolação de string é um processo que substitui valores de variáveis em marcadores de posição em uma string. Por exemplo, se você tiver um modelo para dizer olá para uma pessoa como "Olá (nome da pessoa), prazer em conhecê-lo!", Você gostaria de substituir o espaço reservado para o nome da pessoa por um nome real. Este processo é denominado interpolação de strings.
cordas f
O Python 3.6 adicionou um novo método de interpolação de string chamado interpolação de string literal e introduziu um novo prefixo literal f
. Esta nova forma de formatar strings é poderosa e fácil de usar. Ele fornece acesso a expressões Python embutidas dentro de constantes de string.
Exemplo 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Quando executarmos o programa acima, a saída será
Olá Mundo! Este é Python
No exemplo acima, o prefixo literal f
diz ao Python para restaurar o valor do nome de duas variáveis de string e do programa entre colchetes ()
. Então, quando tivermos print
a saída acima.
Essa nova interpolação de string é poderosa, pois podemos incorporar expressões Python arbitrárias que podemos até fazer aritmética embutida com ela.
Exemplo 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Quando executarmos o programa acima, a saída será
12 multiplique 3 é 36.
No programa acima, fizemos aritmética embutida, que só é possível com este método.
% -formatting
Strings em Python têm uma operação integrada exclusiva que pode ser acessada com o %
operador. Usando %
podemos fazer interpolação de strings simples com muita facilidade.
Exemplo 3:
print("%s %s" %('Hello','World',))
Quando executarmos o programa acima, a saída será
Olá Mundo
No exemplo acima, usamos dois %s
especificadores de formato de string e duas strings Hello
e World
entre parênteses ()
. Temos Hello World
como saída. %s
o especificador de formato de string informa ao Python onde substituir o valor.
A sintaxe de formatação de string muda ligeiramente, se quisermos fazer várias substituições em uma única string, e como o %
operador só aceita um argumento, precisamos envolver o lado direito em uma tupla, conforme mostrado no exemplo abaixo.
Exemplo 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Quando executarmos o programa acima, a saída será
Olá Mundo! Isso é python.
No exemplo acima, usamos duas variáveis de string nome e programa. Envolvemos ambas as variáveis entre parênteses ()
.
Também é possível referir-se a substituições de variáveis por nome em nossa string de formato, se passarmos um mapeamento para o %
operador:
Exemplo 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Quando executarmos o programa acima, a saída será
Olá Mundo! Isso é python.
Isso torna nossas strings de formato mais fáceis de manter e modificar no futuro. Não precisamos nos preocupar com a ordem dos valores que estamos passando com a ordem dos valores que são referenciados na string de formato.
Str.format ()
Nessa formatação de string, usamos format()
função em um objeto de string e colchetes ()
, o objeto de string em format()
função é substituído no lugar de colchetes ()
. Podemos usar a format()
função para fazer uma formatação posicional simples, assim como a %
formatação.
Exemplo 6:
name = 'world' print('Hello, ()'.format(name))
Quando executarmos o programa acima, a saída será
Olá Mundo
Neste exemplo, usamos chaves ()
e format()
função para passar o nome do objeto. Pegamos o valor de nome no lugar das chaves ()
na saída.
Podemos nos referir às nossas substituições de variáveis por nome e usá-las na ordem que quisermos. Este é um recurso bastante poderoso, pois permite reorganizar a ordem de exibição sem alterar os argumentos passados para a função de formatação.
Exemplo 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Quando executarmos o programa acima, a saída será
Olá, mundo! Este é o python.
In this example we specified the variable substitutions place using the name of variable and pass the variable in format()
.
Template Strings
Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template
class from Python’s built-in string
module to use it.
Example 8:
from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))
When we run the above program, the output will be
Hello world! This is python.
In this example we import Template
class from built-in string
module and made a template which we used to pass two variable.
Key Points to Remember:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- No método de template, fazemos um template importando a classe de template do módulo string embutido.
- O método Literal String Interpolation é um método de interpolação poderoso que é fácil de usar e aumenta a legibilidade do código.