Bitte warten...

Python: Strings

► Python-Dokumentation: Text Sequence Type string

Variablen können Zeichen oder Zeichenketten (Strings) speichern. Diese werden von Doublequotes " oder Singlequotes ' umschlossen. Diese Zeichen werden mit dem Backslash \ maskiert, wenn sie Teil des Strings sind.
Mehrzeilige Strings werden mit dreifachen Anführungszeichen umschlossen (""" oder ''').
Zeilenumbrüche können auch mit der Escape-Sequenz \n gekennzeichnet werden.

Code kopieren
a = "Hallo Welt!"
print(a)
print(type(a))

print("\"Hallo Welt!\"")

b = """Dies ist ein Text,
der einen Zeilenumbruch enthält."""

c = "Dies ist ein Text,\nder einen Zeilenumbruch enthält."

Strings verknüpfen

► Python-Dokumentation: Common Sequence Operations

Durch den Operator + können Strings mit anderen Strings verknüpft werden. Durch den Operator * können Strings vervielfacht werden.

Code kopieren
a = "We"
b = "lt! "
c = "Hallo "
d = a + b
c += d  # alternative Schreibweise für c = c + d
c *= 3  # alternative Schreibweise für c = c * 3
print(c)

Strings mit Variablen verknüpfen

In Python existieren verschiedene Verfahren, um Strings und Variablen zu verknüpfen.

Im ersten Beispiel werden die Variablen einfach wie oben beschrieben mit einem +-Zeichen verknüpft, was allerdings am meisten Code erzeugt.

Im zweiten Beispiel werden alle %s-Platzhalter im String durch die Elemente des folgenden Tupels in der Reihenfolge ihres Auftretens ersetzt.

Im dritten Beispiel wird auf den String die Methode format() angewendet, bei der die geschweiften Klammern im String durch die Argumente der Methode ersetzt werden. Die Zahlen in den geschweiften Klammern geben den Index der Argumente an, wodurch die Reihenfolge variabel gestaltet werden kann.

Im vierten Beispiel, bei dem dem String ein f vorangestellt ist, werden die entsprechenden Variablen einfach direkt in die geschweiften Klammern geschrieben, was am wenigsten Code erzeugt und dadurch sehr gut lesbar ist.

Code kopieren
vorname = "Luise"
nachname = "Müller"
strasse = "Birkenweg"
hausnummer = "42a"
plz = "12345"
ort = "Rosental"

a = "Anschrift: " + vorname + " " + nachname + ", " + strasse + " " + hausnummer + ", " + plz + " " + ort
b = "Anschrift: %s %s, %s %s, %s %s" % (vorname, nachname, strasse, hausnummer, plz, ort)
c = "Anschrift: {5} {4}, {3} {2}, {1} {0}".format(ort, plz, hausnummer, strasse, nachname, vorname)
d = f"Anschrift: {vorname} {nachname}, {strasse} {hausnummer}, {plz} {ort}"

print(a)
print(b)
print(c)
print(d)

String in Teilstring zerlegen

► Python-Dokumentation: Common Sequence Operations

Die Anzahl der Zeichen eines Strings lässt sich ähnlich wie bei Listen, Tupeln und Dictionaries mit der Funktion len() ermitteln, wobei die einzelnen Zeichen als Elemente des Strings betrachtet werden können. Die Länge eines Zeichens, das mit einem Backslash \ maskiert wurde, beträgt dennoch 1. Strings können wie Listen und Tupel in ihre Bestandteile zerlegt werden.

Code kopieren
a = "Hallo Welt!"
print(len(a))
print(len("\"Hallo Welt!\"\n"))  # "Hallo Welt!" plus Zeilenvorschub hat eine Länge von 14 Zeichen.
print(a[3])    # Gibt das Zeichen an Position 3 aus.
print(a[2:4])  # Es werden die Zeichen ab Position 2 bis ausschließlich Position 4 ausgegeben.
print(a[1:])   # Es werden die Zeichen ab Position 1 bis zum Ende des Strings ausgegeben.
print(a[:3])   # Es werden die Zeichen vom Anfang des Strings bis ausschließlich Position 3 ausgegeben.
print(a[-5:])  # Es werden die letzten 5 Zeichen ausgegeben.

Mit einer Schleife lassen sich alle Zeichen eines Strings einzeln ausgeben:

Code kopieren
a = "Hallo Welt!"
for c in a:
    print(c)

► Python-Dokumentation: split rsplit

Außerdem lassen sich Strings mit split() nach vorgegebenen Zeichen trennen. Wird kein Trennzeichen vorgegeben, wird das Leerzeichen als Trennzeichen angenommen. Als zweites Argument kann die maximale Anzahl der isolierten Teilstrings angegeben werden. Es wird eine Liste mit den gefundenen Teilstrings zurückgegeben. Im letzten Element der Liste ist dann der restliche String enthalten. rsplit() verhält sich wie split() mit der Ausnahme, dass bei Angabe des zweiten Arguments vom Ende des Strings her getrennt wird. Der restliche String befindet sich dann im ersten Element der zurückgegebenen Liste.

Code kopieren
a = "Hallo Welt!"
print(a.split())

b = "Europa,Asien,Afrika,Amerika,Australien"
print(b.split(","))      # alle Elemente nach , getrennt zurückgeben
print(b.split(",", 3))   # die ersten drei Elemente zurückgeben
print(b.rsplit(",", 3))  # die letzten drei Elemente zurückgeben

► Python-Dokumentation: partition rpartition

Weiterhin können Strings mit partition(x) in ein Tupel mit drei Elementen zerlegt werden, bei der das erste Element den String vor dem ersten Vorkommen von x enthält. Das zweite Element enthält x und das dritte den restlichen String.

rpartition(x) verhält sich genauso mit der Ausnahme, dass nach dem letzten Vorkommen von x getrennt wird.

Code kopieren
b = "Europa,Asien,Afrika,Amerika,Australien"
print(b.partition(","))
print(b.rpartition(","))

Zeichen(-ketten) finden

► Python-Dokumentation: find rfind

Mit den Funktionen find() bzw. rfind() lassen sich die Positionen gesuchter Zeichenketten bestimmen, wobei der Wert -1 zurückgegeben wird, falls das Element nicht gefunden wird.

find() sucht ab dem Anfang des Strings, rfind() ab dem Ende.

Code kopieren
a = "Hallo Welt!"
print(a.find("Leute"))
print(a.find("Welt"))
print(a.rfind("e"))

Vorkommen von Zeichen(-ketten) ermitteln

► Python-Dokumentation: count

Mit der Funktion count() lässt sich die Anzahl gesuchter Zeichenketten innerhalb von Strings ermitteln.

Mit if/in (s. Bedingungen) lässt sich ermitteln, ob eine Zeichenkette in einem String überhaupt enthalten ist.

Code kopieren
a = "Hallo Welt!"
print(a.count("l"))
print(a.count("x"))

if "Welt" in a:
    print("\"Welt\" ist vorhanden.")
else:  # gleichbedeutend mit: if "Welt" not in a
    print("\"Welt\" ist nicht vorhanden.")

Zeichenketten extrahieren

Hier ein Beispiel, wie man eine Teilzeichenkette extrahieren kann, wenn lediglich die umgebenden Zeichen bekannt sind. Die Funktion string_fragment() gibt eine Liste aller Funde von Zeichenketten zurück, die von start und end umgeben sind. Wird als viertes Argument True übergeben, sind start und end im Ergebnis enthalten, bei False nicht.

Code kopieren
def string_fragment(string, start, end, full):
    # returns a list of all fragments within string between start and end
    # full == true: start and end included; full == false: start and end excluded
    fragments = []
    while start in string and end in string:
        pos_start = string.find(start)
        len_start = len(start)
        rest = string[pos_start + len_start:]
        if end in rest:
            pos_end = rest.find(end)
            len_end = len(end)
            pos0 = pos_start + (0 if full else len_start)
            fragments.append(string[pos0:pos0 + pos_end + (len_start + len_end if full else 0)])
        else:
            return fragments
        string = rest[pos_end + len_end:]
    return fragments

str2 = "<div style='text-align:center;'><span class='info'>Hallo!</span></div>"
print(string_fragment(str2, "<span", "</span>", True)[0])
print(string_fragment(str2, "class='", "'", False)[0])

Zeichen ersetzen

► Python-Dokumentation: replace

Um bekannte Zeichen innerhalb eines Strings zu ersetzen, wird die Funktion replace() verwendet.

Code kopieren
a = "Hallo Welt!"
a = a.replace("Welt", "Leute")
print(a)

Zeichen entfernen

► Python-Dokumentation: strip lstrip rstrip

Die Funktion strip() entfernt alle übergebenen Zeichen in beliebiger Reihenfolge vom Anfang und Ende eines Strings. Wird kein Zeichen übergeben, so werden Leerzeichen entfernt.

lstrip() entfernt die Zeichen nur vom Anfang des Strings. rstrip() entfernt die Zeichen nur vom Ende des Strings.

Code kopieren
a = "xo-oxo-ox"
print(a.strip("ox"))
print(a.lstrip("ox"))
print(a.rstrip("ox"))

Strings in Zahlen umwandeln

► Python-Dokumentation: float int

Um einen String, der einen Zahlenwert enthält, mit einer anderen Zahl zu verrechnen, muss der String zunächst mit der Funktion float() bzw. int() in eine Zahl umgewandelt werden.

float() wird für Gleitkommazahlen und int() für Ganzzahlen verwendet.

Code kopieren
a = "42"
b = 2
c = int(a) * b
print(c)

a = "42.5"
b = 2
c = float(a) * b
print(c)

d = int(a) * b  # Strings mit einer Gleitkommazahl können nicht in Ganzzahlen umgewandelt werden.
d = a + b  # Strings können nicht mit Zahlen verknüpft werden.

Codepoint ermitteln

► Python-Dokumentation: ord chr

Die Funktion ord() ermittelt den Unicode-Codepoint eines Zeichens. Der Rückgabewert der Funktion chr() ist das Zeichen des angegebenen Unicode-Codepoints.

Code kopieren
a = "Schöne Grüße!"
print(ord(a[3]))  # das Zeichen an Position 3
print(chr(246))  # die Umkehrfunktion von ord()

Zeichen mit niedrigstem bzw. höchstem Codepoint finden

► Python-Dokumentation: min max

Mit Hilfe der Funktionen min() bzw. max() ist es möglich, innerhalb eines Strings das Zeichen mit dem niedrigsten bzw. höchsten Codepoint zu ermitteln.

Code kopieren
a = "Schöne Grüße!"
print("'" + min(a) + "'")
print("'" + max(a) + "'")

Strings formatiert ausgeben

► Python-Dokumentation: format

Um Strings in einer formatierten Weise auszugeben, wird die Funktion format() verwendet. Dies ist insbesondere nützlich, um Strings in einer Datei zu speichern, auf die lesend oder schreibend zugegriffen werden soll. Durch eine entsprechende Formatierung kann so die genaue Position eines Strings innerhalb der Datei festgelegt werden. Außerdem lassen sich komplexere Ausgaben über das Terminal auf diese Weise z. B. in einer Tabelle übersichtlich gestalten.

Siehe auch: Formatierte Ausgabe von Strings

Weitere Methoden

► Python-Dokumentation: String Methods

Code kopieren
a = "Hallo Welt!"
if a.startswith("Hallo") == True:  # prüft, ob a mit der Zeichenkette "Hallo" beginnt
if a.endswith("Welt!") == True:    # prüft, ob a mit der Zeichenkette "Welt!" endet

b = "123"
if b.isalnum() == True:    # prüft, ob b nur aus Buchstaben und/oder Zahlen besteht
if b.isalpha() == True:    # prüft, ob b nur aus Buchstaben besteht
if b.isnumeric() == True:  # prüft, ob b aus Zahlen besteht