Seite 1 von 1

Formatierte Ausgabe

Verfasst: Donnerstag 25. September 2003, 08:00
von HarryH
Hallo,

Kann ich die Ausgabe aus folgendem Code auch ohne "string"-Modul" erhalten? :?: z.B. mit dem Formatierungsoperator "%" ? :?:

Code: Alles auswählen

import string

wert="Ich bin in der Mitte"
ausgabe="*"+string.center(wert,63)+"*\n"
print ausgabe
Danke, Harry

Re: Formatierte Ausgabe

Verfasst: Donnerstag 25. September 2003, 09:15
von Voges
Hallo!
HarryH hat geschrieben:Kann ich die Ausgabe aus folgendem Code auch ohne "string"-Modul" erhalten?
Wenn's nur um die Vermeidung des String-Moduls geht:

Code: Alles auswählen

wert="Ich bin in der Mitte"
ausgabe="*"+wert.center(63)+"*\n"
print ausgabe
Wenn Du auch center() vermeiden willst, fällt mir nichst ähnlich Elegantes ein.

Code: Alles auswählen

ausgabe = (" "*32) + wert + (" "*32)
ausgabe = "*" + (ausgabe[(len(ausgabe)-63)/2:])[:63] + "*"
print ausgabe
Naja.

Nachtrag: Hier nochmal als Einzeiler

Code: Alles auswählen

ausgabe = "*" + ((" "*(32-(len(wert)/2))) + wert + " "*32)[:63]  + "*"
Jan

Verfasst: Donnerstag 25. September 2003, 12:37
von Dookie
Hi HarryH,

Code: Alles auswählen

wert = "Ich bin in der Mitte"
ausgabe = "*%s*\n" % (wert.center(63))
print ausgabe
hat den Vorteil, daß du auch das Muster als variable definieren könntest, z.B. für verschiedene Templates

Gruß

Dookie

Verfasst: Donnerstag 25. September 2003, 20:18
von Milan
Vorschlag für nur den "%" - Operator:

Code: Alles auswählen

ausgabe = "*%*s%*s*\n"%(32+len(wert)/2,wert,32-len(wert)/2,'')

re:

Verfasst: Freitag 26. September 2003, 09:58
von HarryH
Hallo

Vielen Dank für eure zahlreichen Vorschläge. Ich denke mit der string-Methode "center(width)" geht es am besten und kürzesten. Dabei spare ich mir auch den Import des Moduls string!

Harry