Wie auf der linken richten Sie eine Feste Breite-string?
Ich will nur Textspalten mit fester Breite, aber die Saiten sind alle gepolstert rechts, statt Links!!?
sys.stdout.write("%6s %50s %25s\n" % (code, name, industry))
produziert
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy
aber wir wollen
BGA BEGA CHEESE LIMITED Food Beverage & Tobacco
BHP BHP BILLITON LIMITED Materials
BGL BIGAIR GROUP LIMITED Telecommunication Services
BGG BLACKGOLD INTERNATIONAL HOLDINGS LIMITED Energy
shweet! danke... hatte es ziemlich einfach. umm jetzt mit 3 simultanen richtigen Antworten, bekommt den grünen Haken?
InformationsquelleAutor John Mee | 2012-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das Präfix der Größe Anforderung mit
-
nach Links zu rechtfertigen:InformationsquelleAutor Matthew Trevor
Diese version verwendet die str.format Methode.
Python 2.7 und neuer
Python-version 2.6
UPDATE
Zuvor gab es eine Erklärung in den docs zu den % - operator entfernt aus der Sprache in die Zukunft. Diese Anweisung wurde entfernt von den docs.
Wie es aussieht, die Frage ist abgelehnt. Stufe: committed/abgelehnt
Dieser status ist auch verwendet, um anzugeben, "engagiert", was es definitiv war, da die änderungen in der Dokumentation. Was war der "Alte String-Formatierung" in der 3.2 docs ist jetzt printf-style-String-Formatierung 3.3. Die möglich deprecation-Warnung - tatsächlich sagte: "kann gehen Sie Weg", es war nie eine definitive - ist jetzt nicht von diesem Bereich, als auch, Sie durch eine Warnung darüber, dass es "schrullig". Es ist nicht Weg.
Sie sind auf der Suche an einem anderen Teil des docs. Der Abschnitt Alte string-Formatierung ist immer noch da in 3.3 docs es unter die tutorial-Sektion nicht die library reference. und die Aussage "diese alte Art der Formatierung wird schließlich entfernt werden aus der Sprache" ist immer noch da.
Desinformation, falsche Angaben Irre zu führen beabsichtigt. Ich bezweifle, Marwan hatte keine solchen Absichten.
InformationsquelleAutor Marwan Alsabbagh
on a side note können Sie die Breite variable mit
*-s
InformationsquelleAutor Joran Beasley
Verwenden
-50%
statt+50%
Sie werden so ausgerichtet, Links..print "%-30s" % (name)
drucken-Namen mit linken Einzug.InformationsquelleAutor Rohit Jain
Ich bevorzuge definitiv die
format
Methode mehr, wie es ist sehr flexibel und kann leicht erweitert werden, um Ihre benutzerdefinierten Klassen durch die Definition von__format__
oder diestr
oderrepr
Darstellungen. Für den Willen halten Sie es einfach, ich bin mitprint
in den folgenden Beispielen, die kann ersetzt werden durchsys.stdout.write
.Wir können hinzufügen neben der
align
gibt, die^
,<
und>
ein Füllzeichen ersetzen Sie die Leerzeichen durch andere ZeichenWenn Sie Ihre benutzerdefinierte Klassen, die Sie definieren können, ist es
str
oderrepr
Darstellungen wie folgt:Nun können Sie die
!s
(str) oder!r
(repr) zu sagen, python zu rufen die definierten Methoden. Wenn nichts definiert ist, Python standardmäßig__format__
überschrieben werden kann als gut.x = foo()
Quelle: Python-Essential Reference, David M. Beazley, 4. Auflage
InformationsquelleAutor user1767754
Diese funktionierte in meinem python-Skript:
InformationsquelleAutor codeRunner89
Mit der neuen und beliebten f-Saiten in Python 3.6, ist hier, wie wir Links-align sagen, dass ein string mit 16-Polsterung Länge:
Wenn Sie variable Polsterung Länge:
f-Saiten mehr lesbar.
InformationsquelleAutor Ketan
Eine etwas besser lesbare alternative Lösung:
sys.stdout.write(code.ljust(5) + name.ljust(20) + industry)
Beachten Sie, dass
ljust(#ofchars)
verwendet fixed-width-Zeichen und nicht dynamisch anpassen, wie die anderen Lösungen.InformationsquelleAutor Nick Sweeting