Seit Python2.6 wurde eine neue Funktion str.format() zum Formatieren von Zeichenfolgen hinzugefügt, die sehr leistungsfähig ist. Welche Vorteile hat es also im Vergleich zur vorherigen %-formatierten Zeichenfolge? Lassen Sie uns seine Schüchternheit enthüllen.
Syntax
Es ersetzt % durch {} und:
Positionale Methodenformatierung
>>> '{}.{}'.format('pythontab', 'com') 'pythontab.com' >>> '{}.{}.{}'.format('www', 'pythontab', 'com') 'www.pythontab.com' >>> '{1}.{2}'.format('www', 'pythontab', 'com') 'pythontab.com' >>> '{1}.{2} | {0}.{1}.{2}'.format('www', 'pythontab', 'com') 'pythontab.com | www.pythontab.com'
Die Zeichenfolge Die Formatfunktion kann unbegrenzte Parameter akzeptieren, die Parameterpositionen müssen nicht in der richtigen Reihenfolge sein und die Parameter können nicht oder mehrfach verwendet werden, was sehr flexibel ist
Hinweis: Unter Python2 darf es nicht leer sein {} .6, Python2. Version 7 oder höher ist verfügbar.
Nach Schlüsselwortargumenten
>>> '{domain}, {year}'.format(domain='www.pythontab.com', year=2016) 'www.pythontab.com, 2016' >>> '{domain} ### {year}'.format(domain='www.pythontab.com', year=2016) 'www.pythontab.com ### 2016' >>> '{domain} ### {year}'.format(year=2016,domain='www.pythontab.com') 'www.pythontab.com ### 2016'
Nach Objekteigenschaften
>>> class website: def __init__(self,name,type): self.name,self.type = name,type def __str__(self): return 'Website name: {self.name}, Website type: {self.type} '.format(self=self) >>> print str(website('pythontab.com', 'python')) Website name: pythontab.com, Website type: python >>> print website('pythontab.com', 'python') Website name: pythontab.com, Website type: python
Nach Indizes
>>> '{0[1]}.{0[0]}.{1}'.format(['pyhtontab', 'www'], 'com') 'www.pyhtontab.com'
Mit diesen praktischen „Mapping“-Methoden haben wir ein Werkzeug gegen Faulheit. Grundlegende Python-Kenntnisse zeigen uns, dass Listen und Tupel in gewöhnliche Parameter für Funktionen „zerlegt“ werden können, während dict in Schlüsselwortparameter für Funktionen (durch und *) zerlegt werden kann. Sie können also problemlos eine Liste/ein Tupel/ein Diktat an die Formatfunktion übergeben, was sehr flexibel ist.
Formatqualifizierer
Es verfügt über umfangreiche „Formatqualifizierer“ (die Syntax ist {} mit einem :-Zeichen), wie zum Beispiel:
Auffüllung und Ausrichtung
Auffüllung wird oft zusammen mit Ausrichtung
^ und <、> verwendet, jeweils zentriert, linksbündig und rechtsbündig, gefolgt von der Breite
: Das Zeichen, dem die Auffüllung folgt, kann nur ein Zeichen sein. Wenn nicht angegeben, wird es standardmäßig mit Leerzeichen gefüllt. Die Genauigkeit des Typs f
wird häufig zusammen mit dem Typ f
>>> '{:>10}'.format(2016) ' 2016' >>> '{:#>10}'.format(2016) '######2016' >>> '{:0>10}'.format(2016) '0000002016'
Basis, b, d, o, x sind hauptsächlich binär, dezimal, oktal bzw. hexadezimal.
>>> '{:.2f}'.format(2016.0721) '2016.07'
kann auch als Tausendertrennzeichen für Beträge verwendet werden.
Die Funktion des Formatierens ist zu leistungsfähig und es gibt viele Funktionen. Sie können es ausprobieren.>>> '{:b}'.format(2016) '11111100000' >>> '{:d}'.format(2016) '2016' >>> '{:o}'.format(2016) '3740' >>> '{:x}'.format(2016) '7e0' >>>