Formatierte Ausgabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Donnerstag 25. September 2003, 08:00

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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Donnerstag 25. September 2003, 09:15

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Donnerstag 25. September 2003, 12:37

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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Donnerstag 25. September 2003, 20:18

Vorschlag für nur den "%" - Operator:

Code: Alles auswählen

ausgabe = "*%*s%*s*\n"%(32+len(wert)/2,wert,32-len(wert)/2,'')
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Freitag 26. September 2003, 09:58

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
Antworten