Le moyen commun est la format()
fonction:
>>> s = "This is an {example} with {vars}".format(vars="variables", example="example")
>>> s
'This is an example with variables'
Cela fonctionne bien avec une chaîne de format multiligne:
>>> 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.
Vous pouvez également passer un dictionnaire avec des variables:
>>> d = { 'vars': "variables", 'example': "example" }
>>> s = "This is an {example} with {vars}"
>>> s.format(**d)
'This is an example with variables'
La chose la plus proche de ce que vous avez demandé (en termes de syntaxe) sont les chaînes de modèle . Par exemple:
>>> from string import Template
>>> t = Template("This is an $example with $vars")
>>> t.substitute({ 'example': "example", 'vars': "variables"})
'This is an example with variables'
Je dois ajouter cependant que la format()
fonction est plus courante car elle est facilement disponible et ne nécessite pas de ligne d'importation.
vars()
oulocals()
comme dictionnaire en questiondict
.{{this}}
.REMARQUE : La méthode recommandée pour mettre en forme une chaîne en Python est d'utiliser
format()
, comme indiqué dans la réponse acceptée . Je préserve cette réponse comme exemple de la syntaxe de style C qui est également prise en charge.Quelques lectures:
la source
Vous pouvez utiliser les f-strings de Python 3.6 pour les variables à l'intérieur de chaînes multilignes ou de longues chaînes simples. Vous pouvez spécifier manuellement les caractères de nouvelle ligne à l'aide de
\n
.Variables dans une chaîne multiligne
Variables dans une longue chaîne sur une seule ligne
Vous pouvez également créer une chaîne F multiligne avec des guillemets triples.
la source
+
pour concaténer): stackoverflow.com/a/54564926/4561887Voici ce que tu veux:
la source
"""
préservent les nouvelles lignes, ce qui signifie qu'il y a une nouvelle ligne supplémentaire avant et aprèsmystring
.strip()
,.rstrip()
ou.lstrip()
, ou ue un jeu entre les guillemets triples pour éviter de créer une nouvelle ligne. mystring = "" "\ ABC \" ""Un dictionnaire peut être passé à
format()
, chaque nom de clé deviendra une variable pour chaque valeur associée.Une liste peut également être transmise
format()
, le numéro d'index de chaque valeur sera utilisé comme variable dans ce cas.Les deux solutions ci-dessus donneront le même résultat:
la source
Si quelqu'un est venu ici du client python-graphql à la recherche d'une solution pour passer un objet en tant que variable, voici ce que j'ai utilisé:
Assurez-vous d'échapper à toutes les accolades comme je l'ai fait: "{{", "}}"
la source
Les chaînes f , également appelées «littéraux de chaîne formatés», sont des littéraux de chaîne qui ont un
f
au début; et des accolades contenant des expressions qui seront remplacées par leurs valeurs.Les chaînes f sont évaluées au moment de l'exécution.
Ainsi, votre code peut être réécrit comme:
Et cela évaluera à:
Vous pouvez en savoir plus ici .
la source