E-Mail-Adressen mit einer Liste verwalten
Verwaltung vieler E-Mail-Adressen
Der MSS-Leiter des ...-Gymnasiums möchte allen Schülerinnen und Schülern der Jahrgangsstufe 11 den neuen Kursarbeitsplan per E-Mail zukommen zu lassen. Im Python-Programm, das er für diesen Zweck geschrieben hat, müssen nur noch die E-Mail-Adressen aller Empfänger geeignet verwaltet werden. Deine Mithilfe ist jetzt gefragt!
Wie lässt sich eine Ansammlung von E-Mail-Adressen verwalten? Man könnte hierzu für jede E-Mail-Adresse eine Variable einführen:
# Datenverwaltung adresse1 = 'amueller@gmx.de' adresse2 = 'carla2@hotmail.org' adresse3 = 'herbert.fluhr@web.de' adresse4 = 'petra@dahm.de' adresse5 = 'ewen@t-online.de' adresse6 = 't_schmidt@web.de' adresse7 = 'nicole.weber@gmx.de' # Datenverarbeitung print(adresse1) print(adresse2) print(adresse3) # ...
Wenn auf diese Weise sehr viele E-Mail-Adressen verwalten werden sollen (z.B. die Adrssen von 100 Personen), dann ist dieser Ansatz sicher nicht praktikabel. Ein neuer Ansatz muss also her.
Statt alle Daten einzeln mit Variablen zu verwalten, ist es geschickter,
eine Liste als eine Art Daten-Container
zu benutzen.
Mit Hilfe dieses Daten-Containers
werden mehrere einzelne Daten zu einer komplexeren Dateneinheit
zusammengefasst.
Man benötigt dann nur noch eine Variable, um die Dateneinheit zu verwalten.
# Datenverwaltung listeAdressen = [ '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' ] # Datenverarbeitung for adresse in listeAdressen: print(adresse)
Aufgabe 1
Teste das Programm. Erweitere die bereits existierende Liste um weitere E-Mail-Adressen. Worin besteht der Vorteil, eine Datenansammlung mit einer Liste zu verwalten?
Zugriff auf die Listenelemente
Natürlich möchte man auch auf die einzelnen Elemente einer Liste zugreifen können. Der folgende Python-Dialog zeigt, wie das geht.
>>> listeAdressen = [ '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' ] >>> listeAdressen ['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'] >>> listeAdressen[0] 'amueller@gmx.de' >>> listeAdressen[1] 'carla2@hotmail.org' >>> listeAdressen[6] 'nicole.weber@gmx.de' >>> listeAdressen[7] Traceback (most recent call last): ... listeAdressen[7] IndexError: list index out of range >>> len(listeAdressen) 7 >>> listeAdressen[len(listeAdressen)-1] 'nicole.weber@gmx.de' >>> listeAdressen[1] = 'carla_meier@online.de' >>> listeAdressen ['amueller@gmx.de', 'carla_meier@online.de', 'herbert.fluhr@web.de', 'petra@dahm.de', 'ewen@t-online.de', 't_schmidt@web.de', 'nicole.weber@gmx.de']
Aufgabe 2
Führe selbst einen solchen Python-Dialog durch. Welche Möglichkeiten (und Grenzen) gibt es, auf Listenelemente zuzugreifen?
Eine Liste über den Index durchlaufen
Das folgende Demo-Programm zeigt, wie man eine Liste durchläuft, indem man Schritt für Schritt über den Index auf die einzelnen Listenelemente zugreift.
# Datenverwaltung
liste = ['a', 'b', 'c', 'd', 'e']
# Liste über den Index durchlaufen
index = 0
while index < len(liste):
print(index)
print(liste[index])
index = index + 1
Aufgabe 3
(a) Was leistet das Programm? Kannst du es - ohne vorheriges Testen - vorhersagen?
(b) Entwickle analog ein Programm, das ausgehend von einer Liste mit E-Mail-Adressen die E-Mail-Header erzeugt und auf dem Bildschirm ausgibt:
>>> From: mssleiter@burg-kl.de To: amueller@gmx.de Subject: Kursarbeiten From: mssleiter@burg-kl.de To: carla2@hotmail.org Subject: Kursarbeiten ... From: mssleiter@burg-kl.de To: nicole.weber@gmx.de Subject: Kursarbeiten ...
(c) Teste auch das folgende Programm. Was leistet der range
-Operator?
# Datenverwaltung liste = ['a', 'b', 'c', 'd', 'e'] # Liste über den Index durchlaufen for index in range(len(liste)): print(index) print(liste[index])
Liste über die Elemente durchlaufen
In Python kann man Listen auch direkt über die Elemente durchlaufen.
# Datenverwaltung liste = ['a', 'b', 'c', 'd', 'e'] # Liste über die Elemente durchlaufen for element in liste: print(element)
Aufgabe 4
(a) Teste auch dieses Programm.
(b) Entwickle wie oben ein Programm, das ausgehend von einer Liste mit E-Mail-Adressen die E-Mail-Header erzeugt und auf dem Bildschirm ausgibt:
>>> From: mssleiter@burg-kl.de To: amueller@gmx.de Subject: Kursarbeiten From: mssleiter@burg-kl.de To: carla2@hotmail.org Subject: Kursarbeiten ... From: mssleiter@burg-kl.de To: nicole.weber@gmx.de Subject: Kursarbeiten ...