Seite 1 von 1

Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Montag 25. September 2023, 20:03
von Joel Isaak
Hallo, ich habe schon einige Sachen ausprobiert um eine Lösung für mein Problem zu finden und hoffe nun hier eine Lösung zu finden oder zumindest einen Tipp. Wie kann ich einen Text untereinander in der Ausgabe anzeigen lassen?

Code: Alles auswählen

Maulwurfkuchenrez = ('Portion = 1 Kuchen'
                     ''
                     'Für den Teig:'
                     '- 225ml     Sonnenblumenöl'
                     '- 2         Eier (Größe M)'
                     '- 240g      Zucker'
                     '- 1 Pck.    Vanillezucker'
                     '- 380g      Weizenmehl (Type 405)'
                     '- 1 Prise   Salz'
                     '- 1 Pck.    Backpulver'
                     '- 4 EL.     Backkakao'
                     '- 250ml     Milch'
                     '- Etwas Butter für die Form'
                     ''
                     'Für die Füllung:'
                     '- 600g      Sahne'
                     '- 3 Pck.    Sahnesteif'
                     '- 2 Pck.    Vanillezucker'
                     '- 100g      Zartbitter - Schokoraspel'
                     '- 8         Bananen ca.1,2kg'
als Ausgabe kommt leider dieses (also es geht da noch weiter) "Portion = 1 KuchenFür den Teig:- 225ml Sonnenblumenöl- 2 Eier (Größe M)- 240g Zucker- 1 Pck. Vanillezucker- 380g Weizenmehl (Type 405)- 1 Prise Salz " raus
Ich will nicht print() die ganze Zeit benutzen

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Montag 25. September 2023, 20:18
von Sirius3
Variablen werden komplett klein geschrieben, Konstante KOMPLETT_GROSS. Man benutzt keine kryptischen Abkürzungen; was soll ein Rez sein?
Wenn Du Zeilen haben willst, mußt Du sie per Zeileumbruchzeichen \n auch als solche kennzeichnen.
Oder man benutzt Mehrzeilenstringliterale:

Code: Alles auswählen

MAULWURF_KUCHEN_REZEPT = """Portion = 1 Kuchen

Für den Teig:
- 225ml     Sonnenblumenöl
- 2         Eier (Größe M)
- 240g      Zucker
- 1 Pck.    Vanillezucker
- 380g      Weizenmehl (Type 405)
- 1 Prise   Salz
- 1 Pck.    Backpulver
- 4 EL.     Backkakao
- 250ml     Milch
- Etwas Butter für die Form

Für die Füllung:
- 600g      Sahne
- 3 Pck.    Sahnesteif
- 2 Pck.    Vanillezucker
- 100g      Zartbitter - Schokoraspel
- 8         Bananen ca.1,2kg"""
Oder die beste Lösung: man schreibt den Text erst gar nicht in die Pythondatei, sondern liest das Rezept aus einer separaten Textdatei.

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Montag 25. September 2023, 20:31
von Joel Isaak
Hi, die Lösung das ich das Rezept in eine separate Textdatei schreibe finde ich sehr gut! ich werde mal gucken ob ich das hinkriege. Danke für deinen Tipp!

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Montag 25. September 2023, 20:44
von Joel Isaak
Wie kann ich das machen das die Textdatei "ausgelesen" wird an einem bestimmten Punkt?

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Dienstag 26. September 2023, 06:36
von noisefloor
Hallo,

theoretisch mit `seek(x)`, dann würde der Cursor / "Lesepunkt" in der Datei auf Byte X gesetzt und dann ab da angefangen zu lesen. Was praktisch aber i.d.R. nicht umsetzbar ist, weil du deine Textdatei dann Byte-genau kennen musst. Was bei Rezepten wohl kaum machbar ist. Jedenfalls nicht, wenn du mehr als ein Rezept hast.

Du musst jetzt halt nach einer passenderen Datenstruktur schauen wie evtl. eine Liste, ein Dict oder direkt eine Datenbank wie SQLite.

Was hast du denn genau vor?

Gruß, noisefloor

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Dienstag 26. September 2023, 06:49
von Sirius3
Woran machst Du den bestimmten Punkt fest? Was hast Du bisher versucht? Wie sieht Deine Datei aus?

Re: Text in der Ausgabe untereinander anzeigen lassen

Verfasst: Dienstag 26. September 2023, 12:17
von __blackjack__
@noisefloor: Man könnte sich mit `tell()` und dem Wissen über die Zeilenanzahl je Rezept eine Indexdatei anlegen. Ist natürlich praktisch gesehen bei heutigen Speicherkapazitäten und Rechenleistungen alles unsinniger als einfach immer alle Rezepte einzulesen, mit irgendeinem Trennkriterium zwischen den Rezepten. Oder gleich alles als JSON zu speichern.