Erkundung - Terminkalender
Verwaltung der Daten
Wie lassen sich Daten zu einem elektronischen Terminkalender verwalten?
Im Folgenden werden Möglichkeiten aufgezeigt, die Daten mit Hilfe von Daten-Containern
zu Einheiten zusammenzufassen und Dateneinheiten mit Hilfe von Variablen zu verwalten.
Aufgabe 1
Wir benutzen geschachtelte Listen zur Darstellung der Daten.
>>> kalender = [ [11, 7, 2011, 10, 0, 'Geburtstag Anna'], [11, 7, 2011, 20, 0, 'Kino'], [14, 7, 2011, 15, 30, 'Zahnarzt'], [14, 7, 2011, 17, 0, 'Treffen mit P.'], [15, 7, 2011, 18, 0, 'Training'] ] >>> kalender [[11, 7, 2011, 10, 0, 'Geburtstag Anna'], [11, 7, 2011, 20, 0, 'Kino'], ...] >>> kalender[0] [11, 7, 2011, 10, 0, 'Geburtstag Anna'] >>> kalender[0][5] 'Geburtstag Anna'
(a) Teste selbst diese Darstellung.
(b) Wie kann man z.B. auf den Termin am 15.07.2011 zugreifen? Wie erhält man hier die Uhrzeit?
Aufgabe 2
Wir schachteln die Listen zur Darstellung der Daten noch weiter.
>> kalender = [ [[11, 7, 2011], [10, 0], 'Geburtstag Anna'], [[11, 7, 2011], [20, 0], 'Kino'], [[14, 7, 2011], [15, 30], 'Zahnarzt'], [[14, 7, 2011], [17, 0], 'Treffen mit P.'], [[15, 7, 2011], [18, 0], 'Training'] ] >>> kalender [[[11, 7, 2011], [10, 0], 'Geburtstag Anna'], [[11, 7, 2011], [20, 0], 'Kino'], ...]
(a) Teste diese Darstellung. Welche Vorteile / Nachteile siehst du hier?
(b) Wie kann man z.B. auf den Termin am 15.07.2011 zugreifen? Wie erhält man hier die Uhrzeit?
Aufgabe 3
Wir benutzen jetzt neben einer Liste sogenannte Tupel zur Darstellung der Daten.
>>> kalender = [ ((11, 7, 2011), (10, 0), 'Geburtstag Anna'), ((11, 7, 2011), (20, 0), 'Kino'), ((14, 7, 2011), (15, 30), 'Zahnarzt'), ((14, 7, 2011), (17, 0), 'Treffen mit P.'), ((15, 7, 2011), (18, 0), 'Training') ] >>> kalender [((11, 7, 2011), (10, 0), 'Geburtstag Anna'), ((11, 7, 2011), (20, 0), 'Kino'), ...]
(a) Teste auch hier den Zugriff auf die Daten.
(b) Der folgende Dialog zeigt wesentliche Unterschiede zwischen Listen und Tupel auf. Beschreibe diese Unterschiede.
>>> liste = [11, 7, 2011] >>> liste[2] 2011 >>> liste[2] = 2012 >>> liste [11, 7, 2012] >>> tupel = (11, 7, 2011) >>> tupel[2] 2011 >>> tupel[2] = 2012 Traceback (most recent call last): ... tupel[2] = 2012 TypeError: 'tuple' object does not support item assignment >>> liste = ['A', 'B', 'C'] >>> liste = liste + ['D'] >>> liste ['A', 'B', 'C', 'D'] >>> tupel = ('A', 'B', 'C') >>> tupel ('A', 'B', 'C') >>> tupel = tupel + ('D') Traceback (most recent call last): ... tupel = tupel + ('D') TypeError: can only concatenate tuple (not "str") to tuple
(c) Hier eine weitere Darstellung der Daten zum Terminkalender - nur mit Tupeln. Beurteile diese Darstellung.
>>> kalender = ( ((11, 7, 2011), (10, 0), 'Geburtstag Anna'), ((11, 7, 2011), (20, 0), 'Kino'), ((14, 7, 2011), (15, 30), 'Zahnarzt'), ((14, 7, 2011), (17, 0), 'Treffen mit P.'), ((15, 7, 2011), (18, 0), 'Training') ) >>> kalender [((11, 7, 2011), (10, 0), 'Geburtstag Anna'), ((11, 7, 2011), (20, 0), 'Kino'), ...]