wortabfage

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
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Ich versuche gerade ein programm zu schriben das mir ein paar wörter augibt und ich muss das fehlende wort eingeben.
z.b.
liste = ["a", "b", "c", ] u.s.w.
Ich möchte nun dass er mir alle Teile der liste bis auf eins ausgibt und das letzte dann abfragt.

Hat jemand eine Lösung ohne so viel programmcode?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@toper: was heißt denn, "ohne so viel programmcode"? Was hast Du schon versucht? Zeig mal Deinen bisherigen Code.
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Bisher habe ich nur die idee es mit if schleifen zu machen,also
if liste == 1 and 2...
aber das würde echt lange dauern und wäre auch nicht sehr überschaubar
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@toper: was willst Du denn genau mit if-Abfragen (das sind keine Schleifen) machen? "liste" ist ja eine Liste und keine Zahl?
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

toper hat geschrieben:Bisher habe ich nur die idee es mit if schleifen zu machen,also
if liste == 1 and 2...
`if` leitet keine Schleife ein. Zudem ist dieser rudimentäre Pseudocode auch noch unlogisch.

Du musst auf jeden Fall aus der Liste einen Wert ermitteln, den du hinterher abfragen willst. Ich gehe davon aus, dass es sich dabei um ein zufälliges Element handeln soll. Dafür kannst du random.choice verwenden. Jetzt brauchst du nur noch alle Elemente der Liste ausgeben ohne dasjenige, das du gerade zufällig ausgewählt hast.
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

@Sirius
Ich meine dass ich die ganzen möglichkeiten in if fälle verpacke. Also alle möglichkeiten.
Und das müste man natürlich so schreiben: liste[2] ...
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Hat jemand eine Idee?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ist das was du machen willst so etwas wie ein Lueckentext?
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Nicht direkt.
Es geht um wörter die miteinander zusammenhängen und man soll das fehlende herausfinden.
Also im prinzip ein Lükentext mit einzelnen wörtern
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@toper: bisher ist mir noch nicht klar, wie welche Möglichkeit ausgewählt wird. Um Programmieren zu lernen, muß man erst einmal irgendeine (Teil-)Lösung haben, um ersteinmal das Problem verstanden zu haben, um dann im weiteren Schritt zu einer besseren (verallgemeinerten) Lösung zu kommen. Wie sieht also Deine Lösung für eine Möglichkeit aus?
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Ich dachte mir erst wird mit der random funktion ein zufälliges wort aus der liste ausgewählt. Dann alle anderen ausgegeben und dann das wort abgefragt.
Mein Problem ist jetzt das ausgeben der Wörter.
Praktisch wäre eine funktion die sagt printe alle teile der liste außer ...
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn so eine Funktion praktisch waere, dann musst du dir die wohl schreiben. Denn geben tut es die nicht.

Du musst
- einen zufaelligen Index bestimmen, der ausgelassen werden soll. Der Wertebereich dafuer ist 0..len(liste)-1
- eine Funktion schreiben, die eine Liste und einen Index bekommt, und alle Werte in der Liste ausgibt, *ausser* den, der uebergeben wurde.
toper
User
Beiträge: 73
Registriert: Freitag 13. April 2018, 14:37

Und wie genau soll diese Funktion aussehen?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@toper: zeig doch mal den Code, der z.B. nur das 3. Element nicht ausgibt. Von da aus können wird dann schauen, wie man das verallgemeinert.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

toper hat geschrieben:Und wie genau soll diese Funktion aussehen?
Erst einmal brauchst du eine for-Schleife und zum Ausgeben die print-Funktion. Das sollte doch jetzt zumindest reichen, dass du mal anfangen kannst.
Antworten