Einstieg - Mailingliste
Verwaltung von E-Mail-Adressen
Mailinglisten werden benutzt, um allen Mitgliedern einer Gruppe E-Mails zu verschicken. So könnte die folgende Mailingliste etwa dazu dienen, allen Schülerinnen und Schülern der Jahrgangsstufe 11 des ...-Gymnasiums den neuen Kursarbeitsplan zukommen zu lassen.
amueller@gmx.de carla2@hotmail.org herbert.fluhr@web.de petra@dahm.de ewen@t-online.de t_schmidt@web.de nicole.weber@gmx.de ...
Was soll mit der Liste geschehen, wenn Herbert Fluhr die Schule verlässt? Was soll mit der Liste geschehen, wenn Bianca Krewer neu an die Schule wechselt?
Aufgabe 1
Zur Verwaltung einer Mailingliste in Python bietet sich die Datenstruktur Liste an. Man schreibt hierzu alle E-Mail-Adressen (als Zeichenketten) der Reihe nach durch Kommata getrennt in eckige Klammern.
M = ['amueller@gmx.de', 'carla2@hotmail.org', ... ]
Natürlich müssen statt der drei Punkte ... hier die noch fehlenden E-Mail-Adressen stehen.
Weil das unter Umständen eine sehr lange Zeile wird, kann man in Python auch die folgende Schreibweise benutzen,
bei der das Zeichen \
benutzt wird, um Zeilen miteinander zu verbinden.
# Mailingliste
M = [\
'amueller@gmx.de',\
'carla2@hotmail.org',\
'herbert.fluhr@web.de',\
'petra@dahm.de',\
'ewen@t-online.de',\
't_schmidt@web.de',\
'nicole.weber@gmx.de'\
]
Erstell eine eigene Mailingliste in Python oder kopiere die hier vorgegebene. Speichere sie in einer
eigenen Datei mailingliste.py
ab. Lade sie mit [Run] [Run Module] in die Python-Shell.
Aufgabe 2
Mit dem folgenden Python-Dialog kannst du verschiedene Listenoperationen ausprobieren. Beachte: Alle Operationen verarbeiten die zuerst festgelegte Liste. Diese Ausgangsliste wird durch die durchgeführten Operationen nicht verändert.
Führe jetzt den Python-Dialog aus.
Gib jeweils den Ausdruck nach dem Prompt >>>
ein.
Stell zunächst eine Vermutung auf, was er bewirkt.
Lass Python anschließend den Ausdruck auswerten. Statt des Fragezeichens erhälst du dann das
von Python ermittelte Ergebnis.
>>> M
?
>>> M[0]
?
>>> M[1]
?
>>> M[4]
?
>>> M[0:2]
?
>>> M[2:5]
?
>>> M[1:4]
?
>>> M[3:3]
?
>>> M + ['b-krewer@t-online.de']
?
>>> ['b-krewer@t-online.de'] + M
?
>>> M[0:1] + M[2:7]
?
>>> M[0:3] + M[4:7]
?
>>> M[0:2] + ['b-krewer@t-online.de'] + M[2:7]
?
>>> M[0:5] + ['b-krewer@t-online.de'] + M[5:7]
?
>>> len(M)
?
>>> len(M[3:6])
?
Aufgabe 3
Die Funktion entfernen
soll aus der übergebenen Liste L
das Element mit der
übergebenen Nummer i
entfernen.
def entfernen(L, i):
H = L[0:i] + L[(i+1):len(L)]
return H
# Test
print(M)
print(entfernen(M, 2))
print(M)
(a) Warum liefert der Ausdruck L[0:i] + L[(i+1):len(L)]
die gewünschte neue Liste?
(b) Der Test enthält einige print
-Anweisungen. Welche Ausgaben liefern diese wohl?
Überprüfe deine Vermutung.
Aufgabe 4
Die Funktion einfuegen
soll in einer übergebenen Liste L
das übergebene Element
x
an die Stelle mit der übergebenen Nummer i
einfügen.
def einfuegen(L, x, i):
H = ...
return H
# Test
...
(a) Ergänze den noch fehlenden Ausdruck in der Funktionsdeklaration.
(b) Teste deinen Implementierungsvorschlag.