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'), ...]