Seite 1 von 1

Library für geleitete Entscheidungen

Verfasst: Montag 22. Oktober 2018, 20:24
von floatingbrainiac
Guten Abend liebes Forum,

meine Frage ist gefühlt so banal, dass ich mich fast nicht traue zu fragen. Aber da ich nun circa eine Stunde nach einer Antwort gesucht habe, poste ich sie nun hier. :oops:

Ich suche nach einer Library mit der man der/dem User einfach zu beantwortende Fragen vorgibt und abhängig von Antwort zu einer weiteren Frage weiterleitet usw... um dann schließlich zu einer Entscheidung zu gelangen. Wer professionelle Bestimmungsbücher aus der Biologie kennt oder früher sogenannte Adventure Books gelesen/gespielt hat kennt das Prinzip sicher. Vielleicht fragt ihr euch nun, warum ich das nicht einfach über einfache if/else Befehle löse... Ich möchte jedoch den Code von der Fragen/Antwort-Struktur separieren. Letztere soll in einem separaten Text-File abgelegt sein und auch für Laien einfach zu editieren sein. Kennt ihr dafür eine einfache Lib mit der das zu realisieren wäre?

Re: Library für geleitete Entscheidungen

Verfasst: Montag 22. Oktober 2018, 20:41
von nezzcarth
Eigentlich brauchst du dafür keine dezidierte Bibliothek und mir ist auch keine bekannt, die für sowas gedacht ist. Das lässt sich alles mit den eingebauten Datenstrukturen von Python, insb. Dictionaries, lösen. Die grobe Struktur sähe in etwa so aus:

Code: Alles auswählen

{
'START' : {('Antwort1', 'Antwort2')},
'Antwort1' : {('Antwort3', 'Antwort4')},
'Antwort2' : {('Antwort4', 'Antwort5', 'Antwort6')},
'Antwort3' : ...
}

Im tatsächlichen Einsatz hast du vmtl. dann noch Felder für Fragentexte, IDs etc.. Als Datenformat kannst du z.B. JSON oder YAML nehmen. Wenn du abgesehen von der Repräsentation auch bestimmte Algorithmen auf Graphen brauchst, kannst du evtl. auch networkX oder igraph in Betracht ziehen.

Re: Library für geleitete Entscheidungen

Verfasst: Montag 22. Oktober 2018, 20:51
von Sirius3
die Aufgabenstellung ist so trivial, dass ich nicht glaube, dass es dafür eine Library gibt. Statt zu Suchen, warum schreibst Du es nicht einfach selbst?