13 Prüfungsvorbereitung 2
13.1 Lernziele
Ich erwarte, dass Sie in der Lage sind
- eine Jupyter Arbeitsumgebung zu starten (auswendig);
- Python Listen zu erstellen und zu verändern;
- Werte aus Python Listen direkt oder mit Hilfe von
forSchleifen zu verarbeiten; - Python Dictionaries zu erstellen und zu verändern;
- Wert aus Python Dictionaries direkt oder mit Hilfe von
forSchleifen zu verarbeiten sowie - rekursive Funktionen zu implementieren.
Die Inhalte der letzten Prüfung werden als Grundlagen vorausgesetzt. Die Prüfung findet mit Papier und Bleistift statt. Als Hilfsmittel dürfen Sie eine handschriftliche Zusammenfassung im Umfang einer Seite A4 mitbringen. Die Zusammenfassung darf alles ausser die Schritte zum Start einer Jupyter Arbeitsumgebung enthalten.
13.2 Listen
13.2.1 Listen erstellen
Das Fähnlein Fieselschweif besteht aus Donald Ducks Neffen Tick, Trick und Track. Erstellen Sie eine Liste fieselschweif mit den drei Mitgliedern.
13.2.2 Listen bearbeiten
Ergänzen Sie die vorher erstellte Liste ‘fieselschweif’ um den Namen Dagobert.
Dagobert gefällt es nicht im Fähnlein Fieselschweif. Entfernen Sie Ihn wieder und lassen Sie Ihren Code den Text Dagobert hat das Fähnlein Fieselschweif wieder verlassen. ausgeben. Dagobert soll dabei als Variabel quitter in den Code eingefügt werden.
13.2.3 Über Listen iterieren
Gegeben sei eine Liste numbers. Die Liste beinhaltet die natürlichen Zahlen von 1 bis 10 (numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]). Erstellen Sie mit Hilfe einer for schleife basierend auf der Liste numbers eine neue Liste triplet welche aus den Elementen der Dreierreihe des kleinen Einmaleins besteht.
13.2.4 Python Dictionary erstellen
Erstellen Sie ein Python Dictionary mk, welches die Geschäftsadresse von Jacques Mock Schindler enthält. Die ersten zwei Einträge erhalten Sie als Vorlage.
13.2.5 Über ein Python Dictionary iterieren
Geben Sie den Inhalt des Dictionary mk mit Hilfe einer for Schleife aus. Dabei soll die Ausgabe jedes Eintrags auf einer neuen Zeile erfolgen.
13.2.6 Rekursion
Ein Palindrom ist ein Wort, das in beide Richtungen gelesen werden kann. Ein Beispiel für ein Palindrom ist Sugus. Schreiben Sie eine rekursive Funktion palindrom_tester, welche testet, ob eine gegebene Zeichenfolge ein Palindrom ist.
Hinweis: Die einzelnen Zeichen eines Strings können wie die Elemente einer Liste mit Hilfe eines Index abgerufen werden. Das erste Zeichen eines Strings hat dabei den Index 0.
Damit Sie einfacher prüfen können, ob Ihre Funktion korrekt arbeitet, übergeben Sie ihr ausschliesslich Strings in Kleinbuchstaben.
13.3 Musterlösungen
13.3.1 Listen erstellen
Das Fähnlein Fieselschweif besteht aus Donald Ducks Neffen Tick, Trick und Track. Erstellen Sie eine Liste fieselschweif mit den drei Mitgliedern.
13.3.2 Listen bearbeiten
Ergänzen Sie die vorher erstellte Liste ‘fieselschweif’ um den Namen Dagobert.
Dagobert gefällt es nicht im Fähnlein Fieselschweif. Entfernen Sie Ihn wieder und lassen Sie Ihren Code den Text Dagobert hat das Fähnlein Fieselschweif wieder verlassen. ausgeben. Dagobert soll dabei als Variabel quitter in den Code eingefügt werden.
13.3.3 Über Listen iterieren
Gegeben sei eine Liste numbers. Die Liste beinhaltet die natürlichen Zahlen von 1 bis 10 (numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]). Erstellen Sie mit Hilfe einer for schleife basierend auf der Liste numbers eine neue Liste triplet welche aus den Elementen der Dreierreihe des kleinen Einmaleins besteht.
13.3.4 Python Dictionary erstellen
Erstellen Sie ein Python Dictionary mk, welches die Geschäftsadresse von Jacques Mock Schindler enthält. Die ersten zwei Einträge erhalten Sie als Vorlage.
13.3.5 Über ein Python Dictionary iterieren
Geben Sie den Inhalt des Dictionary mk mit Hilfe einer for Schleife aus. Dabei soll die Ausgabe jedes Eintrags auf einer neuen Zeile erfolgen.
13.3.6 Rekursion
Ein Palindrom ist ein Wort, das in beide Richtungen gelesen werden kann. Ein Beispiel für ein Palindrom ist Sugus. Schreiben Sie eine rekursive Funktion palindrom_tester, welche testet, ob eine gegebene Zeichenfolge ein Palindrom ist.
Hinweis: Die einzelnen Zeichen eines Strings können wie die Elemente einer Liste mit Hilfe eines Index abgerufen werden. Das erste Zeichen eines Strings hat dabei den Index 0.
Damit Sie einfacher prüfen können, ob Ihre Funktion korrekt arbeitet, übergeben Sie ihr ausschliesslich Strings in Kleinbuchstaben.
def palindrom_tester(text):
"""
Prüft rekursiv, ob ein String ein Palindrom ist
(vorwärts und rückwärts gelesen gleich).
Beispiele: "Lagerregal", "Anna", "Reittier"
"""
# Vorverarbeitung: Kleinbuchstaben für einfacheren Vergleich
# (für den Fall, dass Sie sich nicht an den Tipp gehalten haben)
text = text.lower()
# Rekursionsanker 1: Leerer String oder Einzelbuchstabe
# ist immer ein Palindrom.
if len(text) <= 1:
return True
# Rekursionsanker 2: Wenn erster und letzter Buchstabe
# nicht übereinstimmen,
# kann es kein Palindrom sein. Abbruch mit False.
if text[0] != text[-1]:
return False
# Rekursionsschritt:
# Wenn die Ränder passen, prüfe den Teilstring ohne den
# ersten und letzten Buchstaben.
return palindrom_tester(text[1:-1])