ich auf jeden Fall lieber die format
Methode mehr, da es sehr flexibel ist und leicht durch die Definition __format__
oder die str
oder repr
Darstellungen auf Ihre benutzerdefinierten Klassen erweitert werden kann . Um es einfach zu halten, verwende ich print
in den folgenden Beispielen, die durch sys.stdout.write
ersetzt werden können.
einfache Beispiele: Ausrichtung/Füll
#Justify/ALign (left, mid, right)
print("{0:<10}".format("Guido")) # 'Guido '
print("{0:>10}".format("Guido")) # ' Guido'
print("{0:^10}".format("Guido")) # ' Guido '
Wir können den align
Spezifiziert nächsten hinzuzufügen, die ^
, <
und >
ein Füllzeichen den Raum, der durch jedes andere Zeichen zu ersetzen
print("{0:.^10}".format("Guido")) #..Guido...
Mehreingaben Beispiele: align und füllen viele Eingänge
print("{0:.<20} {1:.>20} {2:.^20} ".format("Product", "Price", "Sum"))
#'Product............. ...............Price ........Sum.........'
Erweiterte Beispiele
Wenn Sie Ihre benutzerdefinierten Klassen haben, können Sie definieren es str
oder repr
Darstellungen ist wie folgt :
class foo(object):
def __str__(self):
return "...::4::.."
def __repr__(self):
return "...::12::.."
Jetzt können Sie !s
(str) oder !r
(repr) verwenden, um python anzuweisen, diese definierten Methoden aufzurufen. Wenn nichts definiert ist, wird Python standardmäßig auf __format__
gesetzt, was ebenfalls überschrieben werden kann. x = foo()
print "{0!r:<10}".format(x) #'...::12::..'
print "{0!s:<10}".format(x) #'...::4::..'
Quelle: Python Grundlegende Referenz, David M. Beazley, 4. Auflage
shweet! Danke ... es musste ziemlich einfach sein. umm jetzt mit 3 gleichzeitigen richtigen Antworten wer bekommt den grünen Tick? –