# Python String index: So bestimmen Sie die Position eines Substrings

Mit der `index()`-Methode lässt sich eine Suche auf einem Python String ausführen, um den Index eines [Python Substrings](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-substring/) herauszufinden. Dabei können Sie entweder den ganzen [Python String](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-string/) oder nur ein Teil davon als Suchgebiet festlegen.

## Python String index: Syntax und Funktionsweise

Die Syntax der `index`-Methode lässt sich sehr leicht erklären. Die Methode kann mit **ein, zwei *oder* drei Argumenten** aufgerufen werden, wobei die letzten beiden optional sind. Das erste Argument ist immer der Substring, wonach der String untersucht werden soll. Die beiden optionalen Argumente sind die Indizes, bei denen die Suche gestartet bzw. gestoppt werden soll. Diese sollten nur übergeben werden, wenn tatsächlich nur ein bestimmter Bereich des Strings nach dem Substring untersucht werden soll. Der folgende Code-Abschnitt veranschaulicht die Syntax dieser Methode:

```Python
string.index(substring)
string.index(substring, start, end)
```

In diesem Beispiel ist `string` ein beliebiger String und `substring` der Substring, nach dem gesucht werden soll. `start` und `end` sind jeweils die start- und end-Indizes der Suche. Wenn kein end-Index angegeben wird (also insgesamt nur zwei Argumente), wird einfach bis zum Ende des Strings gesucht. Die Methode gibt als Rückgabewert **den Index des ersten Vorkommens des Substrings** zurück. Wenn also ein Substring mehrfach vorkommt, werden alle Vorkommen nach dem ersten von `index()` ignoriert. Das folgende Beispiel verdeutlicht die Funktionsweise der Methode.

```Python
string = "Ich bin ein String"
print(string.index("String"))
# Ausgabe: 12
print(string.index("in"))
# Ausgabe: 5 (das "in" in "bin")
print(string.index("in", 7, len(string) - 1))
# Ausgabe: 9 (das "in" in "ein")
print(string.index("in", 7))
# Ausgabe: 9 (das "in" in "ein")
print(string.index("Python"))
# Exception-Fehlermeldung: ValueError
```

Wie im obigen Beispiel zu sehen ist, wird beim zweiten Aufruf von `index()` nur der Index des “in”s in “bin” zurückgegeben. Die anderen Vorkommen von “in” werden ignoriert. Beim letzten Aufruf von `index()` kann man sehen, dass die Methode eine “ValueError” Exception zurückgibt, wenn der Substring nicht enthalten ist. Diese Exception wird auch ausgegeben, wenn negative Indizes eingegeben werden oder der start-Index größer ist als der end-Index. Falls einer dieser Fälle in Ihrem Programm möglich ist, sollte die Exception entsprechend behandelt werden.

Tipp Die Verarbeitung von Strings ist eine Aufgabe, die in der Python-Programmierung immer wieder vorkommt. Daher ist es wichtig, dass Strings in einem passenden Format gespeichert und ausgegeben werden. In unserem Artikel zum [Python-String-Format](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-string-format/) erklären wir, wie Sie das Format Ihrer Strings an Ihre Zwecke anpassen können.

## Alternative: Die find-Methode

Je nachdem, wozu Sie die index-Methode brauchen, könnte die *find-Methode* eventuell die bessere Wahl sein. Sie ist fast identisch zur index-Methode, mit einem wichtigen Unterschied: Wenn der Substring nicht gefunden wird, wird keine Exception ausgelöst. Stattdessen wird einfach `-1` zurückgegeben. Da eine unbehandelte Exception zum Absturz Ihres Programms führen würde, kann dies sehr vorteilhaft sein, wenn Sie eine mögliche Exception nicht behandeln können oder wollen. Die Behandlung der Exception kann sogar mit einer if-Bedingung simuliert werden, wie im folgenden Beispiel:

```Python
string = "Python"
if(string.find("Py") != -1):
    print("Substring enthalten! Index: ", string.find("Py"))
else:
    print("Substring nicht enthalten!")
```

In diesem Beispiel gibt es im Fall, dass der Substring nicht gefunden wird, eine Verzweigung, genau wie bei der Behandlung einer Exception. Der größte Unterschied ist, dass `find()` in diesem Beispiel mehrfach ausgeführt werden muss, wenn der Substring gefunden wird.

Tipp Python ist eine der flexibelsten Programmiersprachen, die es gibt. Entsprechend kann man in dieser Sprache sehr viele Operationen auf Strings ausführen. Wir zeigen in einem anderen Artikel mehrere Wege, wie Sie [Python Strings vergleichen](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-compare-strings/) können.

## Beispiele für Python String index

Nun zeigen wir zwei Beispiele dafür, wie `index()` in einem Programm zum Einsatz kommen kann. Zuerst stellen wir ein einfaches Beispiel vor, dann ein etwas komplexeres.

```Python
string = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
print("Der zu überprüfende String ist ", string)
while(True):
    sub = input("Substring eingeben: ")
    try:
        print("Der Index ist: ", string.index(sub))
    except:
        print("Der Substring ist nicht enthalten :/")
```

In diesem Beispiel wird in einem String nach einem Substring gesucht. Anschließend wird ausgegeben, ob der Substring im String enthalten ist und ggf. an welchem Index er steht. In diesem Fall ist der zu untersuchende String vorbestimmt, aber der Substring wird von der Nutzerin bzw. dem Nutzer jedes Mal neu eingegeben.

```Python
def try_except(start):
    try:
        return string.index(sub, start)
    except:
        return -1
string = input("String eingeben: ")
sub = input("Substring eingeben: ")
vorkommen = 0
start = 0
while(try_except(start) != -1):
    start = try_except(start) + len(sub)
    vorkommen = vorkommen + 1
print("Vorkommen: ", vorkommen)
```

In diesem Beispiel wird ein von der Nutzerin bzw. dem Nutzer eingegebener String nach Vorkommen eines Substrings geprüft. Wenn im String ein Vorkommen des Substrings gefunden wird, wird die Anzahl der Vorkommen inkrementiert und die Suche ab dieser Stelle erneut gestartet. Wenn das Ende des Strings erreicht wird, wird die gesamte Anzahl der Vorkommen ausgegeben und das Programm beendet.

Tipp Sie suchen einen Weg, Ihre Webanwendung schnell und leicht zu veröffentlichen? Dann ist [Deploy Now](https://www.ionos.de/hosting/deploy-now "Deploy Now von IONOS") von IONOS die perfekte Plattform für Sie!


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/python-string-index/](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-string-index/) for AI/LLM consumption.