Python 101 LN 4#
In diesem Übungsblatt erkunden wir verschiedene Möglichkeiten, die Namen und Geburtstage von Freunden in einem Dict aufzuschreiben – und bei Bedarf in andere Repräsentationen zu übersetzen.
(Sie brauchen übrigens in Ihren Lösungs-Zellen keine Metadaten mehr angeben, ich habe mein Auswertungs-Skript geändert. Wichtig ist, dass Sie die Dateinamens-Konvention beachten, Danke!)
Der Key kann z.B. so aussehen:
"Donald Ervin Knuth"
"Knuth, Donald Ervin"
Familenname durch Komma eindeutig getrennt("Knuth", "Donald Ervin")
Der Value kann z.B. so aussehen:
a.
"1938-01-10"
# JJJJ-MM-TTb.
[ 1938, 1, 1, "Milwaukee, Wisconsin"]
# Achtung: Jahr, Monat, Tag istint
, keinstr
c.
{ "year": 1938, "month": 1, "day": 10, "town": "Milwaukee, Wisconsin" }
d.
{ "birthday": { "year": 1938, "month": 1, "day": 10 }, "town": "Milwaukee, Wisconsin" }
Ja nach Kombination von Key- und Schlüssel-Struktur kann man z.B. folgendes Geburtstags-Dict bauen:
# einfach: key nach Struktur 1, value nach Struktur a
g_1a = { "Knuth, Donald Ervin": "1938-01-10", ...: ... }
g_1b = { "Knuth, Donald Ervin": [ 1938, 1, 10, "Milwaukee, Wisconsin"], ...: ... }
aber auch
# komplexer: key nach Struktur 3, value nach Struktur d
g_3d = { ("Knuth", "Donald Ervin"): { "birthday": { "year": 1938, "month": 1, "day": 10 }, "town": "Milwaukee, Wisconsin" } }
Diese Aufgabe ist die Basis von Klausuraufgaben im SS 2024, wie sie auch im WS 2024 wieder ähnlich drankommen werden:
https://www.jbusse.de/python-101/klausur_2024-07-08_Loesungshinweise.html#dieselpreise-in-landshut
https://www.jbusse.de/python-101/klausur_2024-07-08_Loesungshinweise.html#datenstruktur-vereinfachen
https://www.jbusse.de/python-101/klausur_2024-07-08_Loesungshinweise.html#dict-durchsuchen
Arbeiten Sie dieses Übungsblatt also intensiv durch. Idealerweise fühlen Sie sich in diesem Übungsblatt pudelwohl, und können praktisch jede Umarbeitung und jeden Index schnell “aus der Hand” hinschreiben. Arbeiten Sie sich an dieser Aufgabe idealerweise komplett ab! ;-)
Vorbereitung: Schlagen Sie die entsprechenden Daten von einigen weiteren Pionieren der Informatik nach, wie z.B. https://de.wikipedia.org/wiki/Alan_Turing, https://de.wikipedia.org/wiki/Ada_Lovelace), andere. (Welche anderen wichtigen Pioniere gab es?)
IHRE AUFGABE: Spielen Sie mit verschiedenen Kombinationen von Strukturen. Möglichkeiten:
Datenstruktur umarbeiten:
gegeben ist
g_1a
. Konstruiere darausg_1b
!gegeben ist
g_3d
. Konstruiere darausg_1a
!
Einen Index erstellen. Die geeignete Datenstruktur ist hier ein Dict von Listen:
In welchen Städten hat wer Geburtstag?
stadt_person = { "Milwaukee, Wisconsin": [ "Donald Ervin Knuth", ... ], ...: [] }
Wer hat im Januar Geburtstag? (auch hier ein Dict von Listen:
{ 1: [ "Donald Ervin Knuth", ...], ...: [] }
usw.: Lassen Sie sich etwas einfallen!
Aufgabe 1#
Eine einfache Umarbeitung Ihrer Wahl, zum “eingrooven”:
Aufgabe 2#
Eine etwas komplexere Umarbeitung Ihrer Wahl:
Aufgabe 3#
Hier können Sie zeigen, was Sie können: