Woche 20#

SS 2026, Klausurvorbereitung Nachschreibeklausur

Ansatz: Wir erstellen eine Aufgabenstellungen, die eine Vielzahl von einzelnen kleinen Aufgaben und -Lösungen erlaubt. Wer die kann, wird der Klausur mit großer Freude entgegenblicken!

Vorgehen, wenn Sie nicht weiterkommen: Fragen Sie auch eine KI, Sie werden ein Programm bekommen. Verstehen sie das Programm. Fragen Sie öfters, ggf. auch explizit nach unterschiedlichen Lösungen, vergleichen Sie die verschiedenen Lösungen. Schließen Sie die KI, schlafen Sie eine Nacht darüber. Versuchen Sie am nächsten Morgen, die Lösung ohne KI selbst hinzubekommen.

Sportarten#

Wir haben einige Personen und Sportarten:

Personen = [ "Alfa", "Beta", "Charly" ]
Sportarten = [ "Schmimmen", "Laufen", "Schach", "Tanzen" ]

Erstelle eine Datenstruktur, die für einige dieser Personen die Sportarten auflistet. Empfohlen: Ein Dict von Mengen.

person_sportart = { "Alfa": { "Schwimmen" }, "Charly": { "Schach", "Tanzen" }, "Beta": {"Tanzen" } }
person_sportart
{'Alfa': {'Schwimmen'}, 'Charly': {'Schach', 'Tanzen'}, 'Beta': {'Tanzen'}}

Berechne daraus eine Datenstruktur, die für jede Sportart die Personen auflistet, die diese Sportart ausüben. Empfohlen: Ein Dict von Mengen.

sportart_person = { "Tanzen": { "Charly", "Beta" } }
sportart_person
{'Tanzen': {'Beta', 'Charly'}}

Touringpreisträger#

Wir haben einige Touringpreisträger und ihre Geburtstage:

Touringpreisträger = """
Donald E. Knuth
10. Januar 1938
Analyse von Algorithmen und Entwurf von Programmiersprachen. Sein mehrbändiges Werk The Art of Computer Programming gilt als „Bibel“ der Informatik.

Tim Berners-Lee
8. Juni 1955
Erfindung des World Wide Web, von HTML, HTTP und dem ersten Webbrowser.

Edgar F. Codd
19. August 1923
Erfindung des relationalen Modells für Datenbankmanagementsysteme, das die Grundlage fast aller modernen Datenbanken bildet.
"""

Erstelle eine Datenstruktur, die für Touringpreiträger das Geburtsdatum und die Erfindung auflistet. Empfohlen: Ein Dict von Dicts. Das Ergebnis sieht etwa so aus:

{
    'Donald E. Knuth': {
        'Geburtstag': '10. Januar 1938',
        'Leistung': 'Analyse von Algorithmen und Entwurf von Programmiersprachen...'
    },
    'Tim Berners-Lee': {
        'Geburtstag': '8. Juni 1955',
        'Leistung': 'Erfindung des World Wide Web...'
    },
    # ... usw.
}

Erweitern Sie ggf. die Lösung:

  • Fügen Sie zu ‘Geburtstag’ und ‘Leistung’ noch die Attribute (Schlüssel-Wert-Paare) ‘Vorname’ und ‘Familienname’ hinzu

  • Gliedern Sie auch den Geburtstag digitalisierungsfreundlicher auf: Fügen Sie auch noch die Attribute ‘JJJJ’, ‘MM’, ‘TT’ hinzu

  • Erstellen Sie ein Dict, das zu jedem Monat die Touringpreisträger nennt, die in diesem Monat Geburtstag haben.

CSV-Text 2 csv#

gegeben ein String nach Art von CSV:

csv_string = """frei 	vor 	Name 	Status
140 	0 Min. 	Hofgarten mapmarker 	geöffnet
99 	337 Std. 	Landratsamt (P10) mapmarker 	geöffnet
33 	0 Min. 	Freyung (P3) mapmarker 	geöffnet
136 	0 Min. 	City-Center (P5) mapmarker 	geöffnet
23 	2 Min. 	Zentrum (P6) mapmarker 	geöffnet
"""
"   abc safdsf s  ".strip()
'abc safdsf s'
zeilen = csv_string.splitlines()
zeilen
['frei \tvor \tName \tStatus',
 '140 \t0 Min. \tHofgarten mapmarker \tgeöffnet',
 '99 \t337 Std. \tLandratsamt (P10) mapmarker \tgeöffnet',
 '33 \t0 Min. \tFreyung (P3) mapmarker \tgeöffnet',
 '136 \t0 Min. \tCity-Center (P5) mapmarker \tgeöffnet',
 '23 \t2 Min. \tZentrum (P6) mapmarker \tgeöffnet']
ergebnis = []

for zeile in zeilen:
    zeile_als_liste = [ z.strip() for z in zeile.split("\t")] 
    print( zeile_als_liste )
['frei', 'vor', 'Name', 'Status']
['140', '0 Min.', 'Hofgarten mapmarker', 'geöffnet']
['99', '337 Std.', 'Landratsamt (P10) mapmarker', 'geöffnet']
['33', '0 Min.', 'Freyung (P3) mapmarker', 'geöffnet']
['136', '0 Min.', 'City-Center (P5) mapmarker', 'geöffnet']
['23', '2 Min.', 'Zentrum (P6) mapmarker', 'geöffnet']

CSV (nochmal)#

gegeben: In einer CSV-Datei sind Messwerte gegeben (z.B. Geschlecht, Körpergröße, Alter). Wenn wir die Datei einlesen erhalten wir folgenden String data:

data = """m;180;21
m;183;27
m;177;23
f;164;19
f;167;25
f;167;24"""

Gesucht: Wir benötigen eine Tabelle in der Form einer Liste von Listen, zeilenweise.

Gesucht: Wir benötigen eine Tabelle in der Form einer Liste von Listen – jetzt aber spaltenweise.