Zuerst nie rufen Sie eine Variable str
. Warum? Weil das der Name der Klasse für Python-Strings ist. Wenn Sie denselben Namen verwenden, verlieren Sie ihn. Ich benutze txt
.
Ihr Test mit der Länge ist sinnvoll, aber die untere Grenze kann erhöht werden (ein einzelnes Zeichen wäre albern).
Aber str.replace()
ist nicht möglich. Warum? Nun, es könnte in Ihrem Testfall funktionieren, aber nur weil jedes Zeichen einzigartig ist. str.replace()
ersetzt alle Vorkommen der angegebenen Zeichenfolge. Wenn also das erste oder letzte Zeichen an anderer Stelle wiederholt wurde, würde das auch geändert werden.
Sie können slicing verwenden, wobei das erste Zeichen (ganz links) 0 (Null) ist. Sie können auch von rechts mit negativen Zahlen indizieren, also -1 ist das letzte (am weitesten rechts stehende) Zeichen. Der Zeichenbereich reicht vom Anfang bis zum Zeichen nach dem letzten Zeichen. So geht [1:-1]
vom zweiten Zeichen zum vorletzten.
def front_back(txt):
if len(txt) <= 1:
return txt
else:
new_txt = txt[-1] + txt[1:-1] + txt[0]
return new_txt
print front_back("code")
Ich benutze return
in der Funktion, da dies die normale Art und Weise der Verarbeitung von Text wäre, und das ist gefragt in Ihrer Frage.
Was ist das Problem? –
Willkommen bei StackOverflow. Sieht so aus, als hättest du selbst eine Hausaufgabe und benötigst Hilfe? Ich würde vorschlagen, dass Sie Ihren Lehrer fragen oder in Ihrem Lernmaterial nachschlagen und nicht nach einer vollständigen Antwort auf die Interwebz suchen. Aber wenn Sie das tun, erklären Sie bitte, welcher Teil des Codes für Sie nicht funktioniert, was das gewünschte Verhalten ist, vielleicht sogar eine Stack-Trace, die den aufgetretenen Fehler zeigt und ** am wichtigsten ist: Was Sie? Ich habe versucht, dieses Problem zu lösen. – Torxed
Das Problem ist in der zweiten 'Ersetzen': Es ersetzt alle Zeichen, nicht nur die letzten. –