Code: Alles auswählen
eingabe = list('4Satz03Das') + ['17'] + list('3ein13ist') + ['12']
sprung = 7
satz = []
def satz_lesen(sprung, eingabe, satz):
# da Liste mit Index 0 beginnt, sprung -= 1
# Umwandlung in int, um Verwendung als Listenindex
buchstaben = int(eingabe[sprung - 1])
for i in range(buchstaben):
# Buchstabe = Listen-Inhalte nach dem Sprungpunkt
buchstabe = eingabe[sprung + i]
satz.append(buchstabe)
# For-Schleife laueft ein Element weiter, um Sprungpunkt zu ermitteln
for i in range(buchstaben + 1):
# Zahl nach letztem Buchstaben (neuer Sprungpunkt) wird gesucht
if i == buchstaben:
# "sprung" wird Inhalt des Indexes nach den Buchstaben zugewiesen
sprung = eingabe[sprung + i]
break
# Wenn die Sprungadresse 0 ist, ist der Satz beendet
if sprung == 0:
return
# Funktion wird mit neuem Sprungpunkt erneut ausgefuehrt
return satz_lesen(sprung, eingabe, satz)
sprung = satz_lesen(sprung, eingabe, satz)
print 'Ergebnis:'
print ''.join(satz)
Ich habe jetzt versucht, dass Problem durch Rekursion zu lösen. Nur leider kommt der Fehler:
Code: Alles auswählen
TypeError: unsupported operand type(s) for -: 'str' and 'int'Kann mir jemand helfen?
Danke!
