Programm was soll ich heute lernen

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.
ostigirl
User
Beiträge: 9
Registriert: Montag 18. November 2019, 11:35

Wie kann ich den mehrere Keys zusammenhängen in einer Zeile?

Code: Alles auswählen

lernart= random.choice(maturathemen_mit_lernweise["Wurzelfunktion", "Prozentrechnen"])
Das funktioniert leider nicht.
Zizibee
User
Beiträge: 229
Registriert: Donnerstag 12. April 2007, 08:36

Sorry, ich dachte du wolltest nun die Lernart heraus suchen.
Wie du die Maturathemen zufällig wählst, hatte Jankie ja schon erklärt.
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@ostigirl: Das geht gar nicht. Du kannst zwar Tupel als Schlüssel verwenden, aber dann muss auch dieses Tupel als Schlüssel im Wörterbuch stehen. Was sollte das was Du da geschrieben hast denn Ergebnis liefern und warum?

Es gibt übrigens keine random Syntax. `random` ist ein Modul und `choice()` ist eine Funktion. Die Syntax ist wie bei jedem anderen Modul und jeder anderen Funktion auch. Bei einem Funktionsaufruf wird erst der Wert vor den Aufrufklammern ausgewertet, also `random.choice`, dann die Argumente, also `maturathemen_mit_lernweise[sample]`, und mit dem Ergebnis wird dann das aufgerufen was `random.choice` ergeben hat. Also würde wenn es nicht beim Auswerten des Arguments einen `NameError` geben würde. Denn bei `maturathemen_mit_lernweise[sample]` wird erst der Ausdruck ausgewertet auf den der Schlüsselzugriff gemacht werden soll (`maturathemen_mit_lernweise` → ein Wörterbuch) und dann der Schlüssel — nur das `sample` nicht definiert wurde.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
ostigirl
User
Beiträge: 9
Registriert: Montag 18. November 2019, 11:35

Ja, Danke zu 95 % ist mein Programm fehlerfrei. Denn Rest werde ich dann mit meiner Programmierlehrerin Face to Face klären im Dezember.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Vielleicht hilft dir ja der fertige Code zu verstehen:

Code: Alles auswählen

import random

maturathemen_mit_lernweise = {"Wurzelfunktion":["Lernkarteien erstellen", "lernen", "Overviewseiten erstellen", "Maturaaufgaben", "Lernspiele"],
                              "lineare Funktion":["Lernkarteien erstellen", "lernen","Maturaaufgaben"],
                              "quadratische Funktion":["lernen", "Overviewseiten erstellen", "Lernspiele"],
                              "Wachstum Zerfall":["Overviewseiten erstellen", "Maturaaufgaben", "Lernspiele"],
                              "Prozentrechnen":["lernen", "Lernspiele", "Overviewseiten erstellen"],
                              "Zahlenbereiche":["Lernkarteien erstellen", "Overviewseiten erstellen", "Lernspiele"],
                              "Venn-Diagramme":["Overviewseiten erstellen", "Maturaaufgaben", "Lernspiele"]}

thema = random.choice(list(maturathemen_mit_lernweise.keys()))
lernweise = random.choice(maturathemen_mit_lernweise[thema])

print(f"Das Thema ist '{thema}' und die Lernweise ist '{lernweise}'")
ostigirl
User
Beiträge: 9
Registriert: Montag 18. November 2019, 11:35

Hallo!
Welches Attribut muss ich den setzten damit ich nur ein dict. value bekomme?

Die Ausgabe sieht so aus:

Venn-Diagramme - "Overviewseiten erstellen", "Maturaaufgaben", "Lernspiele"
(von den values benötige ich nur eines).

Weil sonst hätte ich es dank euch!

Andrea
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Hallo,

im Moment bekommst du eine Liste ausgegeben, da dem key "Venn-Diagramme" als Value eine Liste mit ["Overviewseiten erstellen", "Maturaaufgaben", "Lernspiele"] zugewiesen ist.

Auf die komplette Liste greifst du mit dem Key zu, also maturathemen_mit_lernweise["Venn-Diagramme"]. Du möchtest aber nur ein zufälliges Element dieser Liste, also musst du random.choice auch auf den Value des Dictionarys (in diesem Fall eine Liste) anwenden, also

Code: Alles auswählen

lernweise = random.choice(maturathemen_mit_lernweise["Venn-Diagramme"])
(random.choice nimmt hier in dem Fall eine Liste entgegen und gibt ein "zufälliges" Element dieser wieder zurück). Das ganze siehst du aber auch bei meinem letzten Post hier im Thema, da ist die Aufgabe sogar komplett gelöst.
Antworten