Einführung
Listen sind wie Aktenschränke. Die Schubladen enthalten Informationen verschiedener Art. Beispielsweise kannst du in einer Schublade einen Text, in einer anderen eine Zahl und einer weiteren einfach nur einen Wahrheitswert aufbewahren. Du kannst sogar in einer Schublade im Grunde einen weiteren Aktenschrank aufbewahren. In der Informatik ist das möglich. Da freuen sich Ordnungsfanatiker genauso wie Messies.
Grundgerüst
#eine Liste warenkorb= ["Apfel", "Birne", "Banane", 6, True]
Übungen
Übung 1: Grundlagen
#eine Liste warenkorb = ["Apfel", "Birne", "Banane", 6, True] print(*warenkorb,sep='\n') #Ausgabe aller Elemente, Trennzeichen ist \n (neue Zeile) warenkorb[2] #ist informatisch das 2. Element, das an dritter Stelle (gezählt 0,1,2) steht warenkorb[1] = "Himbeere" #ändert das 1. Element von 'Birne' in 'Himbeere'
- Probiere den Code oben aus. Ändere die Werte und ergänze 3 weitere Werte.
- Gib das 4. Element der Liste per print()-Befehl aus.
- Ändere den Wert des 3. Elements in “Banana” und gib ihn per print() aus.
- Betimme den Typ der letzten beiden Elemente mit dem type()-Befehl, gib den Typ per print() aus.
- Bestimme die Länge der Liste mit len(warenkorb), gib das Ergebnis per print() aus.
Mini-Test
len() und type() sind interne Funktionen in Python und ziemlich nützlich, merken lohnt sich also.
Übung 2: Existenz von Elementen in Listen prüfen
einkauf = ["Apfel", "Birne", "Banane", "Tomate", "Gurke"] if "Apfel" in einkauf: print("Apfel ist in der Liste.")
- Was macht das Skript oben? Mache dir das zunächst wirklich klar, versuche es auch noch ein mal mit einem ganz eigenen Beispiel. Gib nur dein eigenes Beispiel ab. (a)
- Teste das ganze oben auch mit einer for-Schleife statt mit “in”. Schau dir dazu die Lösung unten an. Gib diese Aufgabe mit deiner eigenen Liste ab. (a)
- Erstelle eine Liste mit numerischen Einträgen (also Integern) und prüfe mit einer for-Schleife, ob die Werte kleiner, größer oder gleich 0 sind. (a)
einkauf = ["Apfel", "Birne", "Banane", "Tomate", "Gurke"] for i in range(len(einkauf)): if einkauf[i] == "Apfel": print("Apfel ist in der Liste.")
Übung 3: Listenelemente löschen und ergänzen
- Recherchiere, was der pop()-Befehl mit Listen in Python macht. Schreibe eine Liste und teste den Befehl damit. Mache mit print()-Befehlen vor und nach Anwendung des pop()-Befehls deutlich, was passiert ist. (a)
- Mit einkauf.append(“Orange”) kannst du der Liste Einkauf Orange hinzufügen. Füge 3 weitere Elemente hinzu, gebe anschließend alle Elemente der Liste aus, und zwar mit dieser Methode: print(*list, sep=’\n’) (a)
Übung 4: Listen zusammenführen
obst = ["Apfel", "Birne", "Banane"] gemuese = ["Tomate", "Gurke", "Kürbis"] obst_und_gemuese = obst + gemuese print(obst) print(gemuese) print(obst_und_gemuese)
- Probiere den Code oben aus. Ändere die Werte und teste erneut.
- In Python ist es denkbar einfach, Listen zusammenzuführen. Probiere eigene Varianten aus.
- Klappt es auch mit 3 Listen?
- Klappt es auch mit Listen, die verschiedene Datentypen enthalten?
- Du kannst auch einfach bestehende Listen mit einer anderen erweitern. Das geht mit liste1.extend(liste2). Erstelle zwei Listen und erweitere die eine mit der anderen. Was ist der Unterschied zu der ersten Variante? Schreibe die Antwort auf diese Frage als Kommentar in den Code. (a)
- Extra: Führe Listen mit verschiedenen Datentypen zusammen, lösche dann alle Einträge eines bestimmten Datentyps aus der zusammengesetzten Liste.
Übung 5: Listenelemente mischen und sortieren
In Python existieren fertige Methoden (also Funktionen), mit denen man Listen sortieren kann. Du kannst sowohl Listen mit Strings als auch mit Integern/Floats sortieren. Bei gemischten Listen mit Springs und Integern funktioniert das nicht.
Sortieren
#Beispiel mit Strings obst = ["Apfel", "Birne", "Banane"] print(*obst, sep='\n') obst.sort() print('--------') print(*obst, sep='\n') #Beispiel mit Floats zahlen = [6,7,8,9,3,2,4,1] print(*zahlen, sep='\n') zahlen.sort() print('--------') print(*zahlen, sep='\n')
- Probiere die Codes oben aus.
Mischen
Für das Mischen von Listenelementen in Python benötigst du das Paket random. Mit import random
am Anfang deines Skriptes kannst du das Paket laden und Methoden dieses Pakets nutzen.
- Recherchiere, mit welcher Methode des Paketes random man Listenelemente mischen kann. Probiere es zunächst mit einer Beispielliste aus, bevor du die Fragen unten beantwortest.
Die Methode lautet shuffle(). Du musst noch herausfinden, wie man sie nutzt.
Übung 6 (extra): Löffelsprache
Die Löffelsprache ist eine Geheimsprache, die nur wenige beherrschen. Wenn du auch zu den in dieser Hinsicht ungelenken Menschen wie ich gehörst, kannst du dir eine Stütze bauen.
Die Aufgabe besteht darin, einen angegebenen Text so zu verändern, dass die Vokale entsprechend der Löffelsprache ersetzt werden.
Vokal-Substitute anzeigen- e = elewe
- a = alewa
- i = ilewi
- o = olewo
- u = ulewu
- ü = ülewü
- ö = ölewö
- ä = älewä
- ie = ielewie
- au = aulewau
- ei = eilewei
Theoretisch weißt du nun, wie man die Aufgaben lösen kann. Das heißt du könntest es mit Stift und Papier lösen. Aber wer möchte das schon so machen!
Lösungsschritte und Fragen dahin
- Hast du die obige Reihenfolge richtig gelöst und kannst alle Schritte nachvollziehen?
- Weißt du, wie du die einzelnen Bausteine des Algorithmus erstellen kannst? Du benötigst unter anderem
- einen if-Block, um die Ersetzungen zu managen
- Befehle für die Konvertierungen string\rightarrow liste und wieder zurück liste\rightarrow string
#Start für unser Beispiel text = 'Wenn du das beim Vorlesen direkt verstehst, kannst du die Löffelsprache.' print(text) #list(string) macht eine Liste aus Charactern aus einem String. textAsList = list(text) print(textAsList) #Start für das Neuzusammensetzen rebuildText = "" #Beginne mit einem leeren String for i in range(len(textAsList)): #durchläuft alle Elemente der Liste textAsList #hier kannst du passend zur Löffelsprache substitutieren rebuildText += textAsList[i] #dem leeren String wird jedes Element der Liste nacheinander angefügt print(rebuildText) #Ausgabe des ggf. veränderten TextesSo geht es auch ...
Vielleicht hast du versucht, diese Aufgabe auf andere, schnelle Weise zu lösen. Der oben vorgeschlagene Weg ist umständlicher, aber du lernst auf deinem Niveau etwas mehr dazu. Der folgende Ansatz funktioniert jedoch auch:
#Text, kann auch per Input eingegeben werden text = 'Wenn du das beim Vorlesen direkt verstehst, kannst du die Löffelsprache.' #Liste von Listen, die die Ersetzungen(Substitute) vorgibt substitute = [ ['e','elewe'], ['a','alewa'], ['i','ilewi'], ['o','olewo'], ['u','ulewu'], ['ü','ülewü'], ['ö','ölewö'], ['ä','älewä'], ['ie','ielewie'], ['au','aulewau'], ['ei','eilewei'] ] #Für jedes Element x der Liste substitute wird die folgende for-Schleife durchlaufen for x in substitute: #der neue Text ist der alte Text mit der Ersetzung text = text.replace(x[0],x[1]) #x ist ein Element der übergeordneten Liste und selbst eine Liste mit zwei Elementen. Beispiel: Das 0te Element von substitute hat die Elemente x[0] = 'e' und x[1]='elewe' print(text)
Wow! Alles so ordentlich und sorgfältig hinterlegt. Vielen Dank!
Wow! Alles so ordentlich und sorgfältig hinterlegt. Vielen Dank!
WOw Tolle Website!