so geht es.
Code: Alles auswählen
for i in range(len(l)): # <------- das +1 weggemacht, damit es nicht zum Index Error kommt. Der ganze Code von dir scheint zu funtzen! :)
if l[i] == l[-(i+1)]: # <------- zeile 15
print l[i]
else:
print 'nicht k'
Der Fehler ligt daran das du oberhalb der Lenge von l iterierst und es so zu eine index error kommt
Sprich: Der letzte index ist nicht mehr in list l vorhanden und daher der Fehler.
EDIT: Aber mal so nebenbei, was sol der untere teil machen? Wenn ich otto eingebe wird mir otto angezeigt. wenn ich aber ottos (^^) eingebe wird mir nur ein t angezeigt
EDIT2: Ok ich hatte die else vergessen zu kopieren ^^ Wird aber dadurch auch nicht logischer für mich. wenn ein Zeichen doppelt ist, wird if ausgeführt ansonsten else. In wie fern sol das dazu beitragen um zu testen, ob das Wort ein Palindrom ist
EDIT3: Ok, nun hab ichs verstanden wie das funktioniert ^^ Coole Sache!
EDIT4:
cyp++ hat geschrieben:ja es ist noch nicht ganz fertig, wenn überall 'k' steht ist es ein palindrom! ich muss die ausgabe noch bissl abändern!
Jepp, hab ich auch gerade gemerkt. Der Code ist aber ein wenig schwer zu lesen Funktioniert bei mir aber 100% (habs mit otto ausprobiert). Werde den code noch ein wenig studieren ^^