Seite 1 von 1
dedent funktioniert nicht
Verfasst: Samstag 8. Oktober 2022, 09:58
von Nahuta
Hallo zusammen,
ich bin noch ein Neuling in Python.
Ich habe folgendes Problem. Ich möchte Text über mehrere Zeilen schreiben, das aber gern leserlich im Code sehen. Dedent sah dafür ideal aus.
Ich schrieb also
Code: Alles auswählen
from textwrap import dedent
print(dedent("""Eines Morgens wachst Du auf und alles ist anders.
Du wurdest aus Deinem Universum in eine surreale Welt katapultiert."""))
Der Text wird ausgeschmissen, nur auch mit der Einrückung.
Nach allem, was ich lese, habe ich es aber richtig gemacht.
Was mache ich also falsch?
Re: dedent funktioniert nicht
Verfasst: Samstag 8. Oktober 2022, 10:08
von Sirius3
Es wird nur die Einrückung entfernt, die alle Zeilen gemeinsam haben. Da die erste Zeile nicht eingerückt ist, passiert aber auch nichts.
Re: dedent funktioniert nicht
Verfasst: Samstag 8. Oktober 2022, 11:17
von Nahuta
Großartig! Das war es!
Herzlichen Dank!

Re: dedent funktioniert nicht
Verfasst: Samstag 8. Oktober 2022, 11:26
von __blackjack__
Vielleicht ist ja `inspect.cleandoc()` besser geeignet. Oder einfach ein Zeichenkettenliteral pro Zeile mit einem "\n" am Ende.
Code: Alles auswählen
In [984]: print(inspect.cleandoc("""Eines Morgens wachst Du auf und alles ist anders.
...: Du wurdest aus Deinem Universum in eine surreale Welt katapultiert."""))
Eines Morgens wachst Du auf und alles ist anders.
Du wurdest aus Deinem Universum in eine surreale Welt katapultiert.
In [985]: print(
...: "Eines Morgens wachst Du auf und alles ist anders.\n"
...: "Du wurdest aus Deinem Universum in eine surreale Welt katapultiert."
...: )
Eines Morgens wachst Du auf und alles ist anders.
Du wurdest aus Deinem Universum in eine surreale Welt katapultiert.
In [986]: text = (
...: "Eines Morgens wachst Du auf und alles ist anders.\n"
...: "Du wurdest aus Deinem Universum in eine surreale Welt katapultiert."
...: )
In [987]: print(text)
Eines Morgens wachst Du auf und alles ist anders.
Du wurdest aus Deinem Universum in eine surreale Welt katapultiert.
Oder, falls das ein Textadventure werden soll, den Text gar nicht in den Quelltext schreiben, sondern in Datendateien. Beispielsweise im YAML-Format.