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