In Python sind Strings unveränderlich. Sie werden die getrimmten Zeichenfolge zurück auf die ursprüngliche Zeichenfolge einstellen:
intermediate = intermediate[:-1]
Beachten Sie auch, dass, wenn Sie opposite
zurückkehren, wird es kein String sein, wird es eine Liste von Zeichen sein.
return ''.join(opposite)
EDIT: Sie können es wie so in einen String konvertieren
Ok so auf an Ihrem Code suchen, haben Sie mehr als einen Syntaxfehler:
def reverse(text):
intermediate = []
opposite = []
intermediate.append(text) # <-- this line makes intermediate a list with one element: ['input_text']
# you want intermediate = str(text) (cast it to make a copy)
# as it is, you will just pass this string from one list to another, and return
size = len(intermediate) # you don't need this
while len(intermediate) > 0:
opposite.append(intermediate[-1])
intermediate[:-1] # your string immutability problem
return opposite # your list/string confusion
Also alle zusammen wollen Sie etwas wie:
def reverse(text):
opposite = []
intermediate = str(text)
while len(intermediate) > 0:
opposite.append(intermediate[-1])
intermediate = intermediate[:-1]
return ''.join(opposite)
EDIT 2: Auch, um diese Art von Verwirrung zu vermeiden, habe ich nur String oder nur Listen, in diesem Fall bleiben würde, überhaupt keine Notwendigkeit für Listen:
def reverse(text):
opposite = ''
intermediate = str(text)
while len(intermediate) > 0:
opposite += intermediate[-1]
intermediate = intermediate[:-1]
return opposite
Danke. Wenn ich intermediate = intermediate [: - 1] gesetzt habe, muss ich sonst noch etwas tun? Wenn ich den Code ausführe, (kehrt zurück) gibt es das Gegenteil des Eingabetextes nicht zurück. – user8669
Nein, solange Sie nur den letzten Buchstaben von "intermediate" an "different" anhängen wollen, dann entfernen Sie ihn von 'intermediate', das ist alles was Sie brauchen. OTOH, wenn Sie nur eine Zeichenfolge umkehren möchten, können Sie 'reversed_string = forward_string [:: - 1]' http://stackoverflow.com/documentation/python/289/indexing-and-slicing#t=201607221640437443544 ausführen Sehen Sie hier, um mehr über das Schneiden zu erfahren. – Will
Ich arbeite an einer Zuweisung, die keine umgekehrten oder [:: - 1] Funktionen erlaubt. Gibt es einen Grund, warum mein Code die Zeichenfolge nicht umkehrt? – user8669