Hej Leute,

Zu Beginn ein kleiner Hinweis: Dieser Beitrag ist ein Auszug aus dem neuen Python Komplettkurs von Edley. Falls ihr innerhalb von 30 Tagen Python lernen wollt und ein übersichtliches Nachschlagewerk mit allen wichtigen Themen braucht, ist das eine empfehlenswerte Ressource.

Heute lernt ihr, was Strings sind und wie man mit Ihnen arbeitet:

Strings

Im Beitrag über Datentypen wurden die String-Variablen ja schon kurz vorgestellt. Diese dienen dazu, Zeichenketten aufzunehmen und wiederzugeben. Strings werden in Anführungszeichen (” oder ‘) gestellt. Um String-Variablen zu bearbeiten bzw. zu verändern, kommen 2 Operatoren besonders häufig zum Einsatz:

Das Stern-Symbol (*). Dieses kommt bei Zahlen für die Multiplikation zum Einsatz. Ihr könnt jedoch auch eine Zeichenkette mit einer Zahl “multiplizieren”, in diesem Fall erhaltet ihr bei der Ausgabe eine Wiederholung der entsprechenden Zeichen in der vorgegebenen Anzahl.

Außerdem kennt ihr aus dem Beitrag über Operatoren bereits das Pluszeichen (+). Dieses hat, neben der mathematischen Addition von Zahlen, zwei Zeichenketten miteinander verbunden.

In den folgenden Abschnitten lernt ihr weitere Befehle kennen, mit denen es möglich ist, String-Variablen zu bearbeiten.

Wichtig ist es zunächst, auf einen einzelnen Teil der Zeichenkette zugreifen zu können. Das ist möglich, indem man hinter den Variablennamen in eine eckige Klammer ([] bei Windows mit Alt Gr + 8 und Alt Gr + 9, bei macOS mit alt + 5 und alt + 6) die Position des entsprechenden Buchstabens schreibt. Dabei müsst ihr lediglich berücksichtigen, dass der erste Buchstabe den Index 0 hat. Daher muss die entsprechende Zahl immer um 1 kleiner sein, als die eigentliche Position.

Will man beispielsweise auf den Buchstaben auf Position 4 zugreifen, muss man diesen Buchstaben über den Index 3 ansteuern.

Python String-Array: Die einzelnen Buchstaben mit Index ansprechen

Häufig ist es nicht nur notwendig, einen einzelnen Buchstaben aus der Zeichenkette herauszulösen, sondern einen größeren Bereich. Auch das ist möglich. Hierfür müsst ihr ebenfalls eine eckige Klammer hinter den Variablennamen schreiben. Darin stehen der Start- und der Endpunkt mit einem Doppelpunkt  voneinander getrennt. Dabei müsst ihr berücksichtigen, dass das Zeichen, das ihr als Endpunkt angebt, nicht mehr ausgegeben wird, sondern nur alle Zeichen, die vor dieser Position stehen. Wenn ihr am Anfang der Zeichenkette beginnen wollt, dann könnt ihr dafür den Index 0 eingeben. Alternativ dazu ist es möglich, die Zahl vor dem Doppelpunkt wegzulassen. Dann beginnt das Programm automatisch am Anfang der Zeichenkette. Wenn man die Zahl nach dem Doppelpunkt weglässt, beginnt das Programm am angegebenen Startpunkt und gibt alle Zeichen bis zum Ende der Zeichenkette wieder.

Das folgende Beispielprogramm zeigt, wie man Teile aus einer String-Variablen herauslösen kann:

variable = "Herzlich Willkommen!"
 
print (variable[0])
print (variable[5])
print (variable[3:7])
print (variable[:8])
print (variable[9:])
print (variable[-1])

Wenn ihr dieses Programm ausführt, seht ihr genau, wie der Zugriff auf einzelne Teile der Zeichenkette erfolgt.

Interessant ist dabei der letzte Befehl. Man könnte meinen, dass es keine negativen Positionen geben kann. Das Minuszeichen steht jedoch dafür, dass das Programm beim Zählen der Position von hinten beginnt. Die Position -1 bezeichnet daher das letzte Zeichen, die Position -2 das vorletzte und so weiter.

Einen String in Python in umgekehrter Reihenfolge mit negativen Indizes ansprechen

Anmerkung: Eigentlich wäre es logisch, für das letzte Zeichen die Position -0 zu verwenden. Das ist mathematisch jedoch gleichbedeutend mit 0, sodass der Interpreter das erste Zeichen ausgibt. Daher muss man immer mit -1 beginnen, wenn man beim letzten Zeichen beginnen will.

 

String-Methoden

Neben diesen einfachen Operationen mit Zeichenketten gibt es noch viele weitere, “schlauere” Möglichkeiten der Bearbeitung: Es handelt sich um Funktionen, die in Python integriert sind und die sich durch einen ganz bestimmten Schlüsselbegriff abrufen lassen. Diese Funktionen werden als String-Methoden bezeichnet. Die Vielfalt ist dabei so groß, dass es in diesem Beitrag nicht sinnvoll wäre, jede einzelne Funktion zu beschreiben. Die wichtigsten sollen jedoch kurz vorgestellt werden.

Um diese Methoden anzuwenden, ist es in der Regel notwendig, die Variable, die die Zeichenkette enthält, dem entsprechenden Schlüsselbegriff durch einen Punkt getrennt voranzustellen. Danach steht eine Klammer, die jedoch in vielen Fällen leer bleiben kann. Manchmal, je nach Methode, ist es allerdings notwendig, hier einen bestimmten Parameter einzufügen, damit die Methode richtig funktioniert. Um sie auszuprobieren, soll ein kleines Programm mit verschiedenen Methoden als Beispiel dienen:

text = "herzlich willkommen!"
 
print (text.capitalize())
print (text.count("i"))
print (text.endswith("en!"))
print (text.find("e"))
print (text.isdigit())
print (text.upper())
print (text.replace("e","0"))

 

Führt das Programm durch einen Klick auf Run aus und ihr erhaltet folgendes Ergebnis in der Konsole:

Output des Python-Codes zur String-Manipulation

Die Methode capitalize() sorgt dafür, dass der erste Buchstabe der Zeichenkette groß geschrieben wird. Wenn es sich dabei bereits um einen Großbuchstaben handelt, hat sie keine Auswirkungen.

Die Methode count() benötigt als Parameter eine weitere Zeichenkette innerhalb der Klammer. Sie gibt an, wie häufig die in der Klammer angegebene Zeichenkette in der ursprünglichen Variable vertreten ist. Damit lässt sich beispielsweise die Häufigkeit eines Buchstabens oder eines Wortteils bestimmen. In längeren Texten könnt ihr damit auch bestimmte Wörter zählen.

Die Methode endswith() benötigt ebenfalls eine Zeichenkette in der Klammer und gibt eine boolesche Variable zurück. Diese ist True, wenn die ursprüngliche Variable genau mit den angegebenen Zeichen endet. Tut sie das nicht, ist der Wert False.

Die Methode find() sucht nach einzelnen Zeichen oder Zeichenketten innerhalb der Variable und gibt deren Position zurück. Sollten sie mehrfach auftreten, erhält man den Wert, an dem sie das erste Mal erscheint. Sollte das Zeichen überhaupt nicht vorkommen, erhält man den Wert -1 zurück.

Die Methode isdigit() überprüft, ob eine Zeichenkette ausschließlich aus Ziffern besteht. Je nach Ergebnis der Überprüfung gibt sie True oder False zurück.

Die Methode upper() verwandelt alle Kleinbuchstaben in der Zeichenkette in Großbuchstaben. Bei Ziffern, Satzzeichen oder bei Großbuchstaben hat sie keinen Effekt.

Mit der replace()-Methode könnt ihr einen Buchstaben oder eine bestimmte Abfolge durch einen anderen Ausdruck ersetzen. Diese Methode benötigt zwei Parameter. Der erste von ihnen enthält die Buchstabenfolge, die man ersetzen möchte. Der zweite gibt den neuen Wert an.

Hierbei handelt es sich nur um einen kleinen Ausschnitt aus den vielfältigen Methoden, die ihr auf Zeichenketten anwenden könnt. Eine vollständige Übersicht der String-Methoden findet man in der offiziellen Python-Referenz:

https://docs.python.org/3/library/stdtypes.html#string-methods

Probiert an dieser Stelle selbst ein paar Methoden mit eigenem Beispieltext aus, ihr könnt dabei nichts kaputt machen!

(Auszug aus dem Python Komplettkurs von Edley)

 

Happy coding,

Euer Holger