Der übliche Weg ist die format()
Funktion:
>>> s = "This is an {example} with {vars}".format(vars="variables", example="example")
>>> s
'This is an example with variables'
Es funktioniert gut mit einer mehrzeiligen Formatzeichenfolge:
>>> 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.
Sie können auch ein Wörterbuch mit Variablen übergeben:
>>> d = { 'vars': "variables", 'example': "example" }
>>> s = "This is an {example} with {vars}"
>>> s.format(**d)
'This is an example with variables'
Das, was Sie (in Bezug auf die Syntax) am ehesten gefragt haben, sind Vorlagenzeichenfolgen . Beispielsweise:
>>> from string import Template
>>> t = Template("This is an $example with $vars")
>>> t.substitute({ 'example': "example", 'vars': "variables"})
'This is an example with variables'
Ich sollte jedoch hinzufügen, dass die format()
Funktion häufiger verwendet wird, da sie leicht verfügbar ist und keine Importzeile erfordert.
vars()
oderlocals()
als das fragliche Wörterbuch verwendendict
ohnehin Elemente in einer sein.{{this}}
.HINWEIS : Die empfohlene Methode zum Formatieren von Zeichenfolgen in Python ist die Verwendung
format()
, wie in der akzeptierten Antwort beschrieben . Ich behalte diese Antwort als Beispiel für die C-Syntax bei, die ebenfalls unterstützt wird.Einige lesen:
quelle
Sie können die F-Strings von Python 3.6 für Variablen in mehrzeiligen oder langen einzeiligen Strings verwenden. Sie können Zeilenumbruchzeichen manuell mit angeben
\n
.Variablen in einer mehrzeiligen Zeichenfolge
Variablen in einer langen einzeiligen Zeichenfolge
Alternativ können Sie auch einen mehrzeiligen F-String mit dreifachen Anführungszeichen erstellen.
quelle
+
Verkettung): stackoverflow.com/a/54564926/4561887Das ist, was du willst:
quelle
"""
Zeilenumbrüche beibehalten, was bedeutet, dass es vor und nach demmystring
.strip()
,.rstrip()
oder.lstrip()
, oder ein Spiel innerhalb der dreifachen Anführungszeichen ue zu vermeiden , eine neue Zeile zu erstellen. mystring = "" "\ ABC \" ""Ein Wörterbuch kann übergeben werden
format()
. Jeder Schlüsselname wird zu einer Variablen für jeden zugeordneten Wert.Es kann auch eine Liste übergeben werden.
format()
In diesem Fall wird die Indexnummer jedes Werts als Variable verwendet.Beide oben genannten Lösungen geben dasselbe aus:
quelle
Wenn jemand vom Python-Graphql-Client hierher kam und nach einer Lösung suchte, um ein Objekt als Variable zu übergeben, habe ich Folgendes verwendet:
Stellen Sie sicher, dass Sie alle geschweiften Klammern wie ich umgehen: "{{", "}}"
quelle
f-Strings , auch als "formatierte String-Literale" bezeichnet, sind String-Literale, die
f
am Anfang ein haben. und geschweifte Klammern mit Ausdrücken, die durch ihre Werte ersetzt werden.f-Strings werden zur Laufzeit ausgewertet.
So kann Ihr Code wie folgt umgeschrieben werden:
Und dies wird bewertet, um:
Mehr dazu erfahren Sie hier .
quelle