Hallo,
ich benötige Hilfe, um eine erweiterte "print"-Funkion zu schreiben.
Das Ziel ist der Funktion, ich nenne Sie hier einmal print2, einen Text zu übergeben, welcher in ein bestimmtes Format eingebaut wird.
Definiton:
print(leftC, Text, fillC, rightC, maxNumOfChars=80)
Beispiel:
print("#","", "#", "#")
print(">","Dieser Text ist kürzer als 80 Zeichen", "#", " ")
Ergebnis:
##############################################
> Dieser Text ist kürzer als 80 Zeichen #
- Die Funktion print2 findet also heraus, wie lang der Text der Zeichen X=(len(leftC) + len(Text) + len(rightC)) und ersetzt die verbleibenden Zeichen mit dem füllbuchstaben fillC.
- Toll wäre es auch noch, wenn beim überschreiten der erlaubten Zeilenlänge der String ebenfalls umgebrochen werden würde.
Vielen Dank bereits im Voraus.
Erweiterte Print-Funktion
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Und wofür genau brauchst Du jetzt Hilfe?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Code: Alles auswählen
In [47]: '#' * 23
Out[47]: '#######################'
In [48]: '#' * 42
Out[48]: '##########################################'
Suchst du ljust?
Code: Alles auswählen
In [1]: s = 'dieser string ist kürzer als 80 zeichen'
In [2]: s.ljust(80, '#')
Out[2]: 'dieser string ist kürzer als 80 zeichen#########################################'
In [3]: len(s.ljust(80, '#'))
Out[3]: 80
the more they change the more they stay the same
Hallo,
ja, das funktioniert schon ganz gut. Jetzt möchte ich gerne auch Tabulatoren in meinem Eingabestring verwenden.
Beispiel:
s = "Hier kommen gleich Tabulatoren.\tUnd so geht es weiter.\t\t!!!"
Ich möchte auch diesen String wieder auf 80 Zeichen "eweitern". Das heißt:
1. Am Zeilenende Leerzeichen anfügen
2. Die Leerzeichen am Zeilenende sollen die "Leerzeichen", welche durch die Tabulatoren entstehen berücksichtigen.
Wie sollte ich damit am besten verfahren? Wenn man die Länge von s abfragt, dann kriegt man nicht die Länge, welche der String auf dem Bildschirm verbraucht; durch die Tabulatoren....
ja, das funktioniert schon ganz gut. Jetzt möchte ich gerne auch Tabulatoren in meinem Eingabestring verwenden.
Beispiel:
s = "Hier kommen gleich Tabulatoren.\tUnd so geht es weiter.\t\t!!!"
Ich möchte auch diesen String wieder auf 80 Zeichen "eweitern". Das heißt:
1. Am Zeilenende Leerzeichen anfügen
2. Die Leerzeichen am Zeilenende sollen die "Leerzeichen", welche durch die Tabulatoren entstehen berücksichtigen.
Wie sollte ich damit am besten verfahren? Wenn man die Länge von s abfragt, dann kriegt man nicht die Länge, welche der String auf dem Bildschirm verbraucht; durch die Tabulatoren....
s.expandtabs()ihPyP hat geschrieben:Jetzt möchte ich gerne auch Tabulatoren in meinem Eingabestring verwenden.
Beispiel:
s = "Hier kommen gleich Tabulatoren.\tUnd so geht es weiter.\t\t!!!"
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Zumindest sofern man ausgeht das Tabsize 8 ist. Wollt grad in der Doku nachschauen wie es die Tabsize rausfindet, aber das ist ganz einfach nämlich garnicht, es impliziert einfach 8 Spaces = 1 Tab.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice