Text in der Ausgabe untereinander anzeigen lassen

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
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
Zuletzt geändert von Joel Isaak am Montag 25. September 2023, 20:19, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 18030
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
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!
Joel Isaak

Wie kann ich das machen das die Textdatei "ausgelesen" wird an einem bestimmten Punkt?
Benutzeravatar
noisefloor
User
Beiträge: 3926
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Sirius3
User
Beiträge: 18030
Registriert: Sonntag 21. Oktober 2012, 17:20

Woran machst Du den bestimmten Punkt fest? Was hast Du bisher versucht? Wie sieht Deine Datei aus?
Benutzeravatar
__blackjack__
User
Beiträge: 13457
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
Antworten