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.
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Formatierte Ausgabe

Beitragvon HarryH » 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

Re: Formatierte Ausgabe

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

Beitragvon Dookie » 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

Beitragvon Milan » 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

re:

Beitragvon HarryH » 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

Wer ist online?

Mitglieder in diesem Forum: funkheld