python string-Formatierung Spalten in der Zeile
Ich versuche, das format der Zeichenfolge, so dass alles Linien, die sich zwischen die beiden.
APPLES $.99 214
kiwi $1.09 755
Ich versuche dies durch:
fmt = ('{0:30}{1:30}{2:30}'.format(Fruit,price,qty))
Wie kann ich eine Spalte oder Zeile? Ich lese die docs, aber ich bin verwirrt. Ich dachte, dass die {1:30}
würde es 30 Räume, dann wäre das drucken der nächste Punkt, aber es scheint, dass es 30 Räume, von wo das Vorherige Element beendet.
Dank
InformationsquelleAutor Trying_hard | 2013-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
str.format()
macht Ihre Felder Linksbündig innerhalb der zur Verfügung stehenden Raum. Verwenden Ausrichtung Planern zum ändern der Ausrichtung:Hier ein Beispiel (mit Links und rechts Ausrichtungen):
Sie können die precision. Weitere Informationen finden Sie unter Antwort, Wie formatiere ich einen dezimal-zu-zeigen immer 2 Nachkommastellen?.
InformationsquelleAutor Steven Rumbalski
Ich war mir nicht bewusst, dass Python eine Lösung hat, die für die Formatierung der Spalten, bis jetzt - habe ich beschlossen, diese zu prüfen, nur für den Fall es kam, als ich schon meine eigene Lösung für eine andere Sprache, die nicht über eine integrierte Lösung, die ( Lua ) und als Logik ist Universell, ich portiert, um Python in ein paar Tastenanschläge.
Wissen Python hat seine eigene Lösung, ich werde auf der Suche in die Integration in meine aktuelle Lösung.
Jedoch, wie erstellte ich eine Alternative Lösung, ich werde gehen Sie vor und poste meine Lösung hier, damit Sie sehen können, wie Benutzer-freundlich meine Lösung - einer meiner Beschwerden mit Python ist, dass ein Teil der Formatierung ist weniger als intuitiv wie der Ternäre Operator False, True ( Ehrlich, True, False wäre besser, um zusammen mit der Aussage der ersten ), und andere sind einfach nur seltsam...
Beispiel-Funktion veranschaulicht, Truncate ( Hinweis: einige Logik-Kosten, die nicht nötig sind, noch das, was sich bewegt um, zum Beispiel, wenn _truncate ... etc.. ) zeigt auch die Spalte " format system...
Es ist ziemlich basic - konvertiert tabs in Leerzeichen um, zählen die Länge der Spalten, Leerzeichen einfügen, wenn es zu viele - wenn es zu viel text dann hacken Sie ( meine andere Lösung ist ein Puffer, die Sie verwenden können, oder an der Grenze, also der Grenze chars auftauchen, und Sie zu zwingen 1 leer, char minimum zwischen den Spalten - ich haven ' T hatte eine chance, fügen Sie es in die Python-Variante noch nicht ), etc...
Es ist fantastisch für das Debuggen und output..
Gibt es mehrere wichtige Funktionen... String.FormatColumn( [ _width _text ], ... ), String.FormatSimpleColumn( _width, [ _text, ... ] und "String".FormatColumnEx( _empty_chars, [ _width _text ], ... )..
String.FormatSimpleColumn nimmt die Breite mal, und verwendet, dass für alle Spalten, wiederholen Sie nur text..
String.FormatColumn nimmt Breite und text für jede Spalte...
String.FormatColumnEx ist das gleiche wie FormatColumn außer es können Sie die Zeichen festlegen, die zu verwenden statt Leerzeichen - ich in der Regel verwenden Sie Dezimalzahlen oder anderen char für die index-Zeile....
für meine Lua-Implementierung, hatte ich auch die option zum zuschneiden der richtigen Räume, sondern endete nur mit einem Helfer-Funktion zu trimmen, wenn die Räume nicht wollte... ich lasse Sie da, wenn Sie Spalten, Sie können einfach Anhängen etwas an den string außerhalb der Funktion aufrufen, wenn Sie wollte... und trimmen ist einfach.. Es bedeutet auch, können Sie einfach die Kette der Funktionsaufrufe für genau das gleiche Ergebnis anstelle der Verkettung Argumente... je nachdem, was am besten aussieht für Sie..
InformationsquelleAutor Acecool