Ich verstehe nicht, warum mein Code nicht funktioniert.Fehler in For-Schleife-Anweisung verstehen Python 3
Der Code ist:
def trans(old):
length = len(old)
new = []
new = old
for i in range(0,length):
print(old[length-i-1])
for i in range(0,length):
new[i] = old[length-i-1]
print("new:",new[i]," [i]:",i," old:",old[length-i-1]," length-
i-1:",length-i-1)
ihavenoideawhatimdoing = " ".join(new)
return new
Anweisung:
1. def trans (alt): Input Satz in (old)
2. Länge (len): Nimm Anzahl der Elemente im Satz
3 . new = []
und new = old
ist ein Behälter mit der gleichen Größe für das neue Wort zu machen
4. Erste for
loop = Ich wollte die Wörter im ursprünglichen Satz rückwärts
sehen5. Mein Problem ist in der zweiten for
Schleife. Sehen Sie sich die Ausgabe
6. Was kommt als nächste mit dem Problem ist, ich bin zu lösen, aber nicht auf das Problem, das ich habe
Eingang Satz:
„mir bitte diese lösen“Ich habe kein Etikett für den nächsten Satz von Wörtern, aber es soll sein:
alt (Länge 0-1) -> alt (5-0-1) -> alt (4): das
alt (3): lösen
alt (2): mich
alt (1): Hilfe
alt (0): bitte
Nun, was in der nächsten for
Aussage bei iffy ist längen i-1 = 1, wo statt "Hilfe" zu sein, ist es "lösen."
Beide Codes sind bekannt, also bin ich fest, was sonst noch falsch sein könnte.
'new = old' macht der Name' new' auf das gleiche Objekt zu beziehen, wie 'old'. Wenn Sie also den Inhalt von einem ändern, wird auch der andere geändert. – RemcoGerlich
Es wird nicht nur der Inhalt von 'alt' in' neu' umgewandelt? Also wird * an * in 'neu' in 'alt' geändert? edit: gerade die doppelte Frage gesehen. Danke für die Hilfe ~ – Monxstar
@Monxstar: '=' kopiert nie etwas, es macht nur den Namen auf der linken Seite beziehen sich auf den Wert auf der rechten Seite. Da beide sich auf dasselbe beziehen, ist eine Änderung mit beiden sichtbar (es wird aber immer nur ein Objekt geändert). 'new = list (old)' wie AChampion sagt, erstellt eine neue Liste mit dem Inhalt von 'old'. – RemcoGerlich