Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der grundlegenden Syntax und der erweiterten Verwendung von str.format()

Detaillierte Erläuterung der grundlegenden Syntax und der erweiterten Verwendung von str.format()

Y2J
Y2JOriginal
2017-05-15 10:48:434507Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die grundlegende Syntax und die erweiterte Verwendung von str.format() in der Python-Programmierung vor. Er ist sehr detailliert und enthält Beispiele.

1 . Die Einführung von str.format

In Python können wir + verwenden, um Strings zu verbinden, was in einfachen Fällen gut funktioniert. Wenn wir jedoch eine komplexe String-Verkettung durchführen müssen, wird der Code nicht nur undurchsichtig und schwer verständlich, sondern auch schwer zu warten, wenn wir ihn trotzdem vervollständigen , diese Methode Es scheint, dass er nicht in der Lage ist, das zu tun, was er will.

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 Sie diesen Code in Zukunft noch einmal lesen, wird er so sein Es ist für uns schwierig, das Ausgabeformat intuitiv zu erkennen, und es ist relativ mühsam, es 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 stellt uns jedoch eine weitere einfache und elegante Implementierungsmethode zur Verfügung, 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. Verwendung des Positionsindex

Die folgenden zwei Schreibweisen sind äquivalent:

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

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


In geschweiften Klammern Sie können den Index der Zielzeichenfolge schreiben oder weglassen. 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:

"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")
Der Vorteil der Verwendung des Schlüsselwortindex besteht darin, dass wir uns nicht um die Position der Parameter kümmern müssen und das Endergebnis der Zeichenfolge sichtbar ist auf einen Blick. 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.

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 allgemeine Form

Die allgemeine Form der Formatzeichenfolge lautet wie folgt:

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


Wie Sie Wie Sie dem obigen Code entnehmen können, kann die Formatzeichenfolge in drei Teile unterteilt werden: Feldname, Konvertierung und Formatspezifikation, die jeweils dem Ersatzfeldnamen (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 bei negativen Zahlen stehen Leerzeichen. Vorzeichen

'#'
ist nur gültig für
Ganzzahlen

fügt automatisch die entsprechenden 0b, 0o, 0x davor hinzu binäre, oktale und hexadezimale Werte.

','

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

1 🎜>Besondere Empfehlung

:

Version „php Programmer Toolbox“ V0.1 herunterladen

2. Python kostenloses Video-Tutorial3. Python objektorientiertes Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der grundlegenden Syntax und der erweiterten Verwendung von str.format(). 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