Range-Objekte umfassen die linke gebunden und schließen das Recht gebunden
Wenn die Zeichenfolge 9 Zeichen lang ist, wie es in Ihrem Fall ist würde der Bereich Sequenz:
0 1 2 3 4 5 6 7 8
Lassen Sie uns einen Blick auf, was passiert, wenn die Variable i
in der for
Schleife 8.
in Ihrem while
Schleife erreicht, Sie überprüfen, ob s[8]
gleich zu s[9]
. Da die Indexierung in Python wie in vielen anderen Programmiersprachen bei 0 beginnt, würde der letzte Buchstabe der Zeichenfolge s
einen Index 8 haben, was bedeutet, dass der Index 9 außerhalb des Bereichs der Zeichenfolge liegt. Dies verursacht einen Fehler.
es zu beheben, machen Sie Ihre for
Schleife wie folgt aus:
for i in range(0, len(s)-2):
diese Weise die Reichweite Sequenz 0 1 2 3 4 5 6 7
sein wird, so dass es nicht zu einem Fehler führen wird.
Auch Sie müssen nicht mit der linken als 0 gebunden angeben, ist es ein Standardwert, so funktioniert das auch:
for i in range(len(s)-2):
Sie rufen 's [i + 1]' innerhalb einer for-Schleife auf, die bis 'len (s) -1)' geht. Wenn "i = len (s) -1" ist, liegt "i + 1" außerhalb des Bereichs. –