Bausteine zur Verarbeitung von Adresslisten
Bausteine nutzen
Bei der automatisierten Verwaltung und Verarbeitung von Adresslisten ist es günstig, wenn Operationen zur Verarbeitung dieser Listen zur Verfügung stehen. Mit solchen Operationen sollte es z.B. möglich sein, auf einfache Weise neue E-Mail-Adressen hinzuzufügen oder auch vohandene E-Mail-Adressen wieder zu löschen.
Programmiersysteme wie Python stellen in der Regel eine Reihe vordefinierter Operationen zur
Verarbeitung von Listen zur Verfügung. So kann man in Python die Operation len
zur
Bestimmung der Anzahl der Listenelemente und die Operation +
zum
Aneinanderhängen von Listen benutzen.
Programmiersysteme wie Python erlauben es, auch neue Operationen zu erstellen. Wir werden das in Form von Funktionen realisieren.
Bausteine konzipieren
Der folgende Python-Quelltext zeigt das Gerüst von Funktionsdefinition. Zur Verhaltensbeschreibung sind kurze Beschreibungen und Testfällen integriert. Beachte, dass diese Verhaltensbeschreibungen nur als Zusatzinformation dienen und nicht zur Berechnung des Funktionswerts beitragen.
def hinzufuegenHinten(eintrag, liste):
"""
fügt eintrag hinten in liste an
Bsp.:
>>> hinzufuegenHinten('Kalid', ['Tamara', 'Peter', 'Bello'])
['Tamara', 'Peter', 'Bello', 'Kalid']
"""
# ...
def hinzufuegenVorne(eintrag, liste):
"""
fügt eintrag vorne in liste an
Bsp.:
>>> hinzufuegenVorne('Kalid', ['Tamara', 'Peter', 'Bello'])
['Kalid', 'Tamara', 'Peter', 'Bello']
"""
# ...
def einfuegen(eintrag, index, liste):
"""
fügt eintrag an der Position index in liste ein
Bsp.:
>>> einfuegen('Kalid', 1, ['Tamara', 'Peter', 'Bello'])
['Tamara', 'Kalid', 'Peter', 'Bello']
"""
# ...
def loeschen(index, liste):
#
Aufgabe 1
Erläutere die bereits vorliegenden Verhaltensbeschreibungen.
Ergänze die noch fehlende Verhaltensbeschreibung zur Funktion loeschen
.
Bausteine implementieren und testen
Bei der Implementierung der Bausteine kann man die Programmteile aus den vorangehenden Abschnitten nutzen. Zum Testen kann man das automatisierte Überprüfen der Testfälle verwenden (siehe Modultests). Hierbei ist es günstig, wenn man weitere wichtige Testfälle in die Verhaltensbeschreibungen integriert.
def hinzufuegenHinten(eintrag, liste):
"""
fügt eintrag hinten in liste an
Bsp.:
>>> hinzufuegenHinten('Kalid', ['Tamara', 'Peter', 'Bello'])
['Tamara', 'Peter', 'Bello', 'Kalid']
>>> hinzufuegenHinten('Rebekka', [])
['Rebekka']
"""
listeNeu = liste + [eintrag]
return listeNeu
if __name__ == "__main__":
from doctest import testmod
testmod(verbose=True)
Aufgabe 2
Führe das gezeigte Programm mit dem Modultest aus. Deute die Rückmeldung von Python. Ergänze auch zu den anderen Funktionen eine Implementierung und teste diese analog.