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 verwendet {} und: anstelle von %
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'
Zeichenfolge Die Formatfunktion kann unbegrenzt viele Parameter akzeptieren. Die Parameter können nicht oder mehrfach verwendet werden.
Hinweis: Unter Python2.6 kann es nicht leer sein. 7 und höher.
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 Index
>>> '{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 einen umfangreichen Satz von „Formatqualifizierern“ (die Syntax ist {} mit einem :-Zeichen), wie zum Beispiel:
Auffüllung und Ausrichtung
Auffüllung wird oft zusammen mit Ausrichtung verwendet
^, <、> sind jeweils zentriert, linksbündig, rechtsbündig, gefolgt von der Breite
<🎜 Das Füllzeichen nach dem >:-Zeichen kann nur ein Zeichen sein. Wenn nicht angegeben, wird es standardmäßig mit Leerzeichen gefüllt Codebeispiel:>>> '{:>10}'.format(2016) ' 2016' >>> '{:#>10}'.format(2016) '######2016' >>> '{:0>10}'.format(2016) '0000002016'
Numerisch Präzision und Typ f
Präzision wird oft zusammen mit Typ f verwendet>>> '{:.2f}'.format(2016.0721) '2016.07'
Andere Typen
Basis, b, d, o, x sind hauptsächlich binär, dezimal, oktal bzw. hexadezimal.>>> '{:b}'.format(2016) '11111100000' >>> '{:d}'.format(2016) '2016' >>> '{:o}'.format(2016) '3740' >>> '{:x}'.format(2016) '7e0' >>>
>>> '{:,}'.format(20160721) '20,160,721'