- Nutze alle Lernfunktionen, wie Tests, Quizze und Umfragen.
- Schreibe Beiträge und tausche dich in unseren Foren aus.
- In einigen Lernangeboten bestätigen wir dir die Teilnahme.
AI.Lab
Kursthemen
-
-
Strings als Sequenzen
Nachdem wir nun die
for
-Schleife kennengelernt haben, können wir damit durch verschiedene Arten von Daten iterieren. Iterieren bedeutet, durch die Elemente einer Datenstruktur zu gehen, eins nach dem anderen, und Operationen auf jedem Element auszuführen. Eine wichtige Art von Daten in Python sind sogenannteSequenzen
.
Eine Sequenz, die wir bereits kennengelernt haben, sindStrings
– Zeichenketten.Jetzt können wir direkt über die einzelnen Buchstaben eines Strings iterieren, um beispielsweise die Anzahl der enthaltenen Buchstaben 'a' zu zählen. Dies geschieht, indem wir auf die Buchstaben im String über deren Position zugreifen, also
stringName[index]
.
index
steht dabei für Buchstaben mit der Nummer = Index im String. Es wird beim nullten Buchstaben angefangen zu zählen.def zaehleA(string): anzahl=0 for i in range(len(string)): if(string[i]=='a'): anzahl+=1 return anzahl testString = "Hallo, ich habe Hunger" print(f"Der String enthält {zaehleA(testString)} 'a's.")
-
Die Funktion soll nun so verändert werden, dass jedes
a
durch einb
ersetzt wird. Diese Aufgabe sieht auf den ersten Blick einfach aus, allerdings hat sie einen Haken. Probiere den Code in der nächsten Zeile aus. Er wird einen Fehler produzieren.def zaehleA(string): anzahl=0 for i in range(len(string)): # iteriere über den String if(string[i]=='a'): # Wenn der aktuelle Buchstabe a ist: anzahl+=1 # Erhöhe den Zähler string[i]='b' # FEHLER: Der Inhalte soll von 'a' zu 'b' gewechselt werden. print(string) # Gebe veränderten String aus return anzahl testString = "Hallo, ich habe Hunger" print(f"Der String enthält {zaehleA(testString)} 'a's.")
-
Das Problem des obigen Programmcodes ist, dass in Python Strings
immutable
also unveränderlich sind. Einzelne Stringelemente können also nach der Erstellung des Strings nicht mehr verändert werden. Es können allerdings neue Strings mit dem gewünschten Inhalt erstellt werden. Dazu gibt es vordefinierteMethoden
in der String Klasse.Methoden
Eine Methode ist eine Funktion, die an ein Objekt (eine Instanz einer Klasse, dazu kommen wir später noch) gebunden ist. Methoden werden innerhalb von Klassen definiert und operieren auf Daten, die in diesen Klassen gespeichert sind.
Methoden werden aufgerufen, indem man den Objektnamen, einen Punkt (.) und den Methodennamen verwendet.Die für uns wichtige Methode lautet
string.replace(zuErsetzten, ersetztenDurch)
. Sie bekommt als erstes Argument den Buchstaben, der ersetzt werden soll und als Zweites den, mit dem er ersetzt werden soll.Wichtig:
Die Methode ändert nicht die Variablestring
. Sie gibt den neuen, angepassten String zurück, sodass wir diesen abspeichern können!def zaehleA(string): anzahl=0 for i in range(len(string)): # iteriere über den String if(string[i]=='a'): # Wenn der aktuelle Buchstabe a ist: anzahl+=1 # Erhöhe den Zähler string = string.replace('a', 'b') # RICHTIG: Tauscht das a durch ein b aus. print(string) # Gebe veränderten String aus return anzahl testString = "Hallo, ich habe Hunger" print(f"Der String enthält {zaehleA(testString)} 'a's.")
Weitere nützliche String Methoden können in Python String Methods gefunden werden.
-