A maneira comum é a format()
função:
>>> s = "This is an {example} with {vars}".format(vars="variables", example="example")
>>> s
'This is an example with variables'
Ele funciona bem com uma string de formato de várias linhas:
>>> s = '''\
... This is a {length} example.
... Here is a {ordinal} line.\
... '''.format(length='multi-line', ordinal='second')
>>> print(s)
This is a multi-line example.
Here is a second line.
Você também pode passar um dicionário com variáveis:
>>> d = { 'vars': "variables", 'example': "example" }
>>> s = "This is an {example} with {vars}"
>>> s.format(**d)
'This is an example with variables'
A coisa mais próxima do que você perguntou (em termos de sintaxe) são strings de modelo . Por exemplo:
>>> from string import Template
>>> t = Template("This is an $example with $vars")
>>> t.substitute({ 'example': "example", 'vars': "variables"})
'This is an example with variables'
Devo acrescentar, porém, que a format()
função é mais comum porque está prontamente disponível e não requer uma linha de importação.
vars()
oulocals()
como o dicionário em questãodict
qualquer maneira.{{this}}
.NOTA : A maneira recomendada de fazer a formatação de strings em Python é usar
format()
, conforme descrito na resposta aceita . Estou preservando esta resposta como um exemplo da sintaxe de estilo C que também é compatível.Algumas leituras:
fonte
Você pode usar as strings f do Python 3.6 para variáveis dentro de strings de várias linhas ou longas de uma linha. Você pode especificar manualmente os caracteres de nova linha usando
\n
.Variáveis em uma string multilinha
Variáveis em uma longa string de linha única
Como alternativa, você também pode criar uma string F multilinha com aspas triplas.
fonte
+
para concatenar): stackoverflow.com/a/54564926/4561887Isso é o que você quer:
fonte
"""
preservam as novas linhas, o que significa que há uma nova linha extra antes e depoismystring
.strip()
,.rstrip()
ou.lstrip()
ou usar uma folga dentro das aspas triplas para evitar a criação de uma nova linha. mystring = "" "\ ABC \" ""Um dicionário pode ser passado para
format()
, cada nome de chave se tornará uma variável para cada valor associado.Além disso, uma lista pode ser passada para
format()
, o número do índice de cada valor será usado como variável neste caso.Ambas as soluções acima produzirão o mesmo:
fonte
Se alguém veio aqui do cliente python-graphql procurando uma solução para passar um objeto como variável, aqui está o que usei:
Certifique-se de escapar de todas as chaves como eu fiz: "{{", "}}"
fonte
strings f , também chamadas de “literais de string formatadas”, são literais de string que têm um
f
no início; e chaves contendo expressões que serão substituídas por seus valores.strings f são avaliadas em tempo de execução.
Portanto, seu código pode ser reescrito como:
E isso vai avaliar para:
Você pode aprender mais sobre isso aqui .
fonte