i

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.

Suche

v
4.2.1.1
www.inf-schule.de/algorithmen/listen/datenstrukturliste/einstieg_mailingliste
www.inf-schule.de/4.2.1.1

Rückmeldung geben