Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erklärung von str.format() in Python

Detaillierte Erklärung von str.format() in Python

高洛峰
高洛峰Original
2017-03-13 09:22:242536Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die grundlegende Syntax und die erweiterte Verwendung von str.format() in der Programmierung vor. Er ist sehr detailliert und enthält hoffentlich Beispiele Sie können „Gefällt mir“

1. Die Einführung von str.format

In Python können wir + verwenden, um

Strings zu verbinden einfach In diesem Fall kann diese Methode gut funktionieren. Wenn wir jedoch eine komplexe Zeichenfolgenverkettung durchführen müssen und diese trotzdem mit + vervollständigen, wird der Code dadurch nicht nur unklar, sondern erschwert auch die Wartung des Codes. Zu diesem Zeitpunkt ist diese Methode unzureichend.

Zum Beispiel möchten wir einen Datensatz wie diesen drucken:

Benutzer:John hat

Aktion:Zahlung um Zeit:13:30 abgeschlossen :00

Wenn Sie das Pluszeichen verwenden, hat es die folgende Form:


print "User:" + user_name + " has completed Action:" + \ 
      action_name + " at Time:" + current_time
Wenn wir zurückgehen und lesen Wir werden diesen Code in Zukunft verwenden Das Ausgabeformat ist visuell schwer zu erkennen und es ist relativ mühsam, ihn zu ändern.

Wir können stattdessen % verwenden:


print "User:%s has completed Action:%s at Time:%s" % \ 
    (user_name, action_name, current_time)
Diesmal wird der Code viel klarer und prägnanter.

Python bietet uns jedoch eine weitere einfache und elegante Implementierungsmethode, die auch die offizieller empfohlene Methode ist: Verwenden Sie str.format(), um Zeichenfolgen zu formatieren:


print "User:{} has completed Action:{} at Time:{}".format( 
    user_name, action_name, current_time)
str.format kann in einfachen Szenarien verwendet werden und ist auch in der Lage, komplexe String-Ersetzungen ohne umständliche String-Verkettungsvorgänge durchzuführen. Die in Python integrierten Typen str und unicode unterstützen beide die Verwendung von str.format() zum

Formatieren von Zeichenfolgen.

Als nächstes werden wir die spezifische Verwendung von str.format() im Detail besprechen.

2. Grundlegende Syntax von str.format

Die Formatzeichenfolge verwendet geschweifte Klammern {}, um das Ersetzungsfeld zu umgeben, bei dem es sich um die zu ersetzende Zeichenfolge handelt . Zeichen, die nicht in geschweifte Klammern eingeschlossen sind, werden im Ergebnis intakt angezeigt.

2.1. Verwenden Sie den Positionsindex

Die folgenden zwei Schreibweisen sind äquivalent:

"Hallo, {} und {}!".format ("John", "Mary")

"Hallo, {0} und {1}!".format("John", "Mary")


In geschweiften Klammern Der Index der Zielzeichenfolge kann geschrieben oder weggelassen werden. Wenn es weggelassen wird, erfolgt die Ersetzung in der Reihenfolge der in Formatklammern eingeschlossenen Zielzeichenfolgen.

2.2. Verwendung des Schlüsselwortindex

Zusätzlich zur Angabe der Zielzeichenfolge nach Position können wir sie auch nach Schlüsselwort angeben.

Zum Beispiel:


Der Vorteil der Verwendung des Schlüsselwortindex besteht darin, dass wir uns nicht um die Position der Parameter kümmern müssen Das Endergebnis der Zeichenfolge ist auf einen Blick erkennbar. Bei der zukünftigen Codewartung können wir die entsprechenden Parameter schnell ändern, ohne die entsprechenden Parameter einzeln anhand der Zeichenfolge suchen zu müssen.
"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")

Hinweis: Wenn die Zeichenfolge selbst geschweifte Klammern enthält, müssen diese durch zweimaliges Wiederholen maskiert werden. Wenn die Zeichenfolge selbst beispielsweise { enthält, schreiben wir sie einfach in {{ um, damit Python weiß, dass es sich um ein normales Zeichen handelt und nicht um die geschweiften Klammern, die ein Ersetzungsfeld umgeben.

3. Erweiterte Syntax von str.format


str.format ist sehr leistungsfähig genug, um die

formatierte Ausgabe zu vervollständigen, die bei der täglichen Arbeit auftritt

. Die Beherrschung dieser Methode kann eine solide Grundlage für die zukünftige String-Verarbeitung legen und viel Zeit sparen. 3.1. Greifen Sie auf das

-Attribut

oder das Element des Parameters zu. Wenn Sie str.format zum Formatieren einer Zeichenfolge verwenden, übergeben wir normalerweise die Zielzeichenfolge als Parameter an die Formatierungsmethode. Tatsächlich können wir auch auf ein Attribut oder ein Element des Parameters in der Formatzeichenfolge zugreifen:

"Mein Auto ist {0.color}.".format(black_car)

"Der erste Schüler ist {student[0]}.".format(student=stu_

list
)"John ist {d[john]} Jahre alt.".format(d=age_dict)

3.2. Parameterausgabekonvertierung

Die String-Ausgabe von Parametern wird standardmäßig durch eine eigene Formatmethode implementiert. Das heißt, Python verwendet die Formatausgabe des Parameters anstelle des Ersetzungsfelds. Wenn wir str() oder repr() aufrufen möchten, um Parameter zu konvertieren, können wir dies tun, indem wir das Konvertierungsflag hinzufügen:


# call str() on argument
"It's a {0!s}."

#call repr() on argument
"We can get info from {name!r}."
4 str .format Allgemein Die allgemeine Form des Formats


lautet wie folgt:

"... {field_name!conversion:format_spec} ..."

Wie Sie dem obigen Code entnehmen können, kann die Formatzeichenfolge in drei Teile unterteilt werden: Feldname, Konvertierung und Formatspezifikation, die jeweils dem Namen des Ersatzfelds (Index), dem Konvertierungsflag und der Formatbeschreibung entsprechen. Unter diesen ist der Feldname erforderlich, während die beiden letzteren optional sind. Das Konvertierungsflag folgt dem Ausrufezeichen und die Formatbeschreibung folgt dem Doppelpunkt.

Wie bereits erwähnt, kann der Feldname entweder ein Positionsindex oder ein Schlüsselwortindex sein. Auf Feldnamen können Punkte folgen, um auf Attribute zuzugreifen, oder eckige Klammern, um auf Elemente zuzugreifen.

Hier konzentrieren wir uns auf die Formatbeschreibung (format_spec).

Die Formatbeschreibung enthält 6 Optionen, nämlich füllen, ausrichten, signieren, Breite, Präzision, Typ. Ihre Positionsbeziehung ist wie folgt:

[[fill]align][sign][#][0][width][,][.precision][type]
fill
kann sein irgendein Zeichen, Standard ist Leerzeichen.

align
ist nur gültig, wenn eine Mindestbreite angegeben ist.


Vorzeichen
Nur ​​gültig für Zahlen

+ Alle Zahlen sind mit Vorzeichen versehen
- Nur negative Zahlen sind mit Vorzeichen versehen (Standardoption)

Das heißt, Leerzeichen sind positiv Vor Zahlen stehen Leerzeichen und vor negativen Zahlen stehen Leerzeichen. Vorzeichen

'#'
ist nur für ganze Zahlen gültig

fügt automatisch die entsprechenden 0b, 0o und 0x vor binären, oktalen und hinzu Hexadezimalwerte.

','

Fügt automatisch ein ,-Trennzeichen zwischen jeweils drei Zahlen hinzu.

width
Dezimalzahl, die die Mindestbreite definiert. Wenn nicht angegeben, wird sie durch die Breite des Inhalts bestimmt.

Wenn die Ausrichtung nicht angegeben ist, können Sie vor der Breite eine 0 hinzufügen, um automatisch 0 zu füllen. Dies entspricht dem Setzen von Füllung auf 0 und Ausrichtung auf =.

Genauigkeit

wird verwendet, um die Genauigkeit von Gleitkommazahlen oder die maximale Länge einer Zeichenfolge zu bestimmen. Nicht verfügbar für ganzzahlige Werte.

type
bestimmt den Parametertyp, der Standardwert ist s, was eine Zeichenfolge ist.

Integer-Ausgabetyp:

b: Ausgabe im Binärformat

c: Konvertieren der Ganzzahl in das entsprechende Unicode-Zeichen

d: Ausgabe im Dezimalformat (Standardoption)

o: Ausgabe in oktaler Form
x: Ausgabe in hexadezimaler Kleinschreibung
Zahl


Ausgabetyp für dezimale Gleitkommazahlen:

e: Exponentenausgabe in wissenschaftlicher Notation , verwenden Sie e, um den Exponententeil darzustellen, die Standardgenauigkeit ist 6

E: und e ist dasselbe, verwendet aber ein großes E, um den Exponententeil darzustellen

f: Geben Sie den Wert in Festkommaform aus Die Standardgenauigkeit ist 6

F: das Gleiche wie f

g: allgemeines Format für eine gegebene Genauigkeit p > wissenschaftliche Notation (Standardoption)
G: allgemeines Format; das gleiche wie g, verwenden Sie E, um den Exponententeil darzustellen, wenn der Wert zu groß ist
n: das gleiche wie g, verwendet jedoch das Trennzeichen der aktuellen Umgebung Trennen Sie jede 3-stellige Zahl
%: Prozentzeichen; verwenden Sie die Prozentform, um den Wert auszugeben, und setzen Sie das f-Zeichen

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von str.format() in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn