yranoitciD

Aufgabe

Für diese Aufgabe haben Sie folgendes Dict gegeben: notenwerte = {'sehr gut': '1', 'gut': '2', 'befriedigend': '3', 'ausreichend': '4', 'mangelhaft': '5', 'ungenügend': '6'}. Nun möchten Sie einem Nutzer, der eine Zahl eingibt, die Schulnote nennen, die zu diesem Zahlenwert gehört.

1. Inside Out

Ihnen fällt auf, dass das gegebene Dictionary in die falsche Richtung geht. Sie wollen die Zahl als Schlüssel verwenden und die Schulnote als String erhalten. Sie müssen das Dictionary also erst “umdrehen”.

  • Erstellen Sie dazu zunächst ein leeres Dictionary mit einem geeigneten Namen.
  • Iterieren Sie nun über die Schlüssel-Wert-Paare des gegebenen Dictionaries.
  • Fügen Sie dabei jedes Schlüssel-Wert-Paar “andersherum” in Ihr neues Dictionary ein.

Hinweis: Um über die Schlüssel-Wert-Paare eines Dictionaries zu laufen, können Sie die items()-Funktion des Dictionaries verwenden:

beispiel_dict = {"abc": "123", "def": "456"}
for item in beispiel_dict.items():
    # item ist hier ein Tupel aus Schlüssel und Wert, sieht also z.B. so aus: ("abc", "123")
    schluessel, wert = item
    print(f"{schluessel} => {wert}")

# abc => 123
# def => 456

Alternativ kann man hier auch direkt for schluessel, wert in beispiel_dict.items(): schreiben.

2. Nutzereingabe

Nun wollen Sie Ihr schickes neues Dictionary bestimmt direkt benutzen:

  • Fragen Sie den Nutzer nach einem Schulnotenwert und nehmen Sie die Eingabe entgegen
  • Schlagen Sie die Nutzereingabe in Ihrem Dictionary nach
  • und geben Sie schließlich das Ergebnis aus.
3. Bonus I

Behandeln Sie den Fall einer Nutzereingabe, die nicht in Ihrem Dictionary vorkommt. Z.B. indem Sie die dadurch auftretende Exception abfangen oder erst prüfen, ob die Nutzereingabe überhaupt ein Schlüssel in Ihrem Dictionary ist.

4. Bonus II

Geben Sie auch die nächstbessere Note mit aus, wenn es eine gibt.