(4) Strings

Wie geht Python mit Text um? Wie lässt er sich speichern und bearbeiten? Mit Fragen rund um die Verarbeitung von Text beschäftigt sich dieser Freckle.

Challenge

Schreibe ein Programm, in dem der Autor des folgenden Gedichts mit seinen Initialien (R. M. Rilke) ausgegeben wird zusammen mit der Information wie oft das Wort ‘Wind’ vorkommt.

Es treibt der Wind im Winterwalde
die Flockenherde wie ein Hirt
und manche Tanne ahnt, wie balde
sie fromm und lichterheilig wird.

Und lauscht hinaus: den weißen Wegen
streckt sie die Zweige hin – bereit
und wehrt dem Wind
und wächst entgegen
der einen Nacht der Herrlichkeit.
Rainer Maria Rilke

Gut zu Wissen

Textinformation werden in Python als Zeichenketten (Strings) dargestellt. Die Zeichenketten (Objekte vom Typ str) sind eine Kette (Array) aus Bytes, die einzelne Zeichen (character) darstellen. Jedes Zeichen wird kodiert, entspricht also einer Zahl. Zum Beispiel entspricht “H” dem Zeichen 72. In der Informatik gibt es verschiedene Kodierungen. Die in Python verwendete ist Unicode.

Gekennzeichnet werden Strings entweder durch “” oder ”. Mit ”’ lassen sich mehrzeilige Strings markieren. Diese werden auch oft als Kommentare genutzt. Einige Beispiele:

Zusammengesetzter Datentyp
Die Anzahl der Zeichen, aus denen ein String besteht, ist die Länge eines Strings. Sie lässt sich mit len(txt) ermitteln. Es ist möglich, jedes einzelne Zeichen innerhalb eines Strings anzusprechen. Dafür werden eckige Klammern, die die entsprechende Position angeben, verwendet. Interessanterweise gibt es in Python keinen Datentyp für einen einzelnen Character (z.B. char). Ein solcher Buchstabe ist einfach eine Zeichenkette mit der Länge 1.

Nicht nur einzelne Zeichen, sondern auch Teile eines Strings lassen sich mit eckigen Klammern und der Angabe eines Startes und eines Endes gezielt ansprechen. Start- und Endindex werden dabei innerhalb der Klammern mit einem Doppelpunkt getrennt. Bei negativem Index wird vom Ende des Strings her abgezählt.

Spickzettel

Python bietet eine Menge (built in) Methoden an, die die Arbeit mit Strings erleichtern. Eine gute Übersicht ist z.B. bei w3schools zu finden. Im folgenden Spickzettel sind einige wichtige Methoden aufgelistet.

String
Datentyp; Sequenz von Zeichen (Bytes) Nicht veränderbar (immutable), Unicode
string.count(value, start, end) Gibt zurück, wie oft ein gesuchter Begriff/ein Zeichen in einem String vorkommt. Mit start und end kann auch ein Teilstring definiert werden. Default ist 0 und der letzte Index.
string.endswith(value, start, end) Gibt True zurück, wenn der String mit einem bestimmten Wert (value) endet. Mit start und end lässt sich auch ein Teilstring für die Suche spezifizieren.
string.find(value, start, end) Durchsucht einen String nache dem Wert und gibt den Startindex zurück
string.join(iterable) Verbindet die Elemente, die in einem iterierbaren Objekt (z.B. einer Liste) mit übergeben wurden.
string.replace(oldvalue, newvalue, count) Ersetzt oldvalue mit newvalue innerhalb eines Strings. count gibt die Anzahl der oldvalue Vorkommen an, die ersetzt werden sollen. Als Default werden alle Vorkommen ersetzt.
string.split(separator, maxsplit) Teilt den String mit Hilfe des angegebenen Separators in maxsplit Einzelstring. Diese werden als Liste zurückgegeben. Der Defaultwert von maxsplit ist -1, was bedeuted, dass alle Vorkommen geteilt werden.


Schreibe einen Kommentar

Menü schließen