Dies geschieht, weil beide secretWord
und compareWord
auf die gleiche Liste. Die erste Codezeile erstellt eine neue Liste aus der Zeichenfolge Apple und weist diese Liste secretWord
zu. Die zweite Zeile weist diese Liste compareWord
zu - beide Variablen zeigen jetzt auf dieselbe Liste! Die for-Schleife ändert jedes Element in der Liste in einen Unterstrich. Beim Drucken dieser Liste werden zu Recht 5 Unterstriche angezeigt.
Wenn Sie den print("".join(secretWord))
-Aufruf nach der Schleife verschieben, sehen Sie, dass die Ausgabe dieses Aufrufs ebenfalls in die 5 Unterstriche geändert wurde.
Eine einfache Möglichkeit, dies zu beheben, besteht darin, eine Kopie der Liste zu compareWord
zuzuordnen (dh eine neue Liste, aber mit dem gleichen Inhalt des alten). Für exmaple:
- Slicing:
compareWord = secretWord[:]
- Neue Liste Aufruf:
compareWord = List(secretWord)
Für einige detaillierte Informationen darüber, wie eine Liste in Python zu klonen, siehe How to clone or copy a list?
Für einige Intro auf Python und Listen, siehe https://developers.google.com/edu/python/lists, zeigt dies auch schön das Problem Ihrer Begegnung.