Wie zu beheben IndexError: string index out of range
Ich bin meist ein Java-Benutzer, aber für meine GCSE, ich habe mit Python.
Ich war mucking um so einen Algorithmus zu finden, der Palindrom-zahlen.
Der code ist ein großes Durcheinander, als ich .Eine - noch nicht ganz herausgefunden, Python-syntax. und .Zwei haben sich nicht verkürzt-Algorithmus, außer zu machen, die den start aus der höheren Anzahl und rückwärts zu arbeiten.
Der code ist wie folgt für python 3.4.1:
print("This program will find the nearest palindromic number to a given value.")
countN = input("Input a number above 0 to find the nearest palindromic number")
countN = str(countN)
nl = len(countN) # Number length
pf = 0 # Palindrome found
while(pf == 0 and int(countN)>=0): #While no palindrome found and count is bigger than 0
ep = nl # end pointer
sp = -1 # start pointer
while(int(ep) >= sp):
if(int(countN[ep]) == int(countN[sp])):
ep = ep-1
sp = sp+1
print(count + " is a palindrome.")
pf = 1
else:
print(count + " is not a palindrome.")
countN = countN - 1
Ich dachte nur das ändern der Zeiger bit, sollte es getrennt von der IF-Anweisung?
Sowieso den Fehler habe ich wie folgt:
>>>
This program will find the nearest palindromic number to a given value.
Input a number above 0 to find the nearest palindroic number99
Traceback (most recent call last):
File "C:/Python34/Computer science/palindrome finder.py", line 10, in <module>
if(int(countN[ep]) == int(countN[sp])):
IndexError: string index out of range
>>>
Bitte beachten Sie: gesucht hab ich hier auf eine Antwort, die Teil der Grund, warum es str() und int()'s überall.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist hier
Dann sagen Sie
Wenn Sie eine Zeichenkette der Länge 10, die gültigen Indizes sind
0
zu9
, so10
ist außerhalb des Bereichs.Den schnellsten fix wäre, ändern Sie Ihre Initialisierungen außerhalb der
while
Schleife.Jedoch zu lösen so ein problem würde ich nur tun,