Heim >Backend-Entwicklung >Python-Tutorial >Pythons leistungsstarke String-Formatierungsfunktion – format

Pythons leistungsstarke String-Formatierungsfunktion – format

高洛峰
高洛峰Original
2016-10-17 11:38:221225Durchsuche

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

wobei .2 die Genauigkeit der Länge 2 darstellt und f den Float-Typ darstellt.

Andere Typen
>>> '{:>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'
>>>

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