Ich bin neu hier im Forum, sowie auch neu in Python =)
Derzeit versuche ich mich an dem "openbook" von Galileo Computing und bin gerade beim Kapitel Basisdatentypen.
Jetzt habe ich hier eine Gegenüberstellung von zwei Scripten(?!) Jedoch bekomme ich eine andere Ausgabe wie es laut Buch eigentlich der Fall sein sollte
Also erstmal hier der Abschnitt aus dem Buch:
Das erste Beispiel ist ok, da bekomme ich auch bei beidem ein True. Doch beim zweiten Beispiel erhalte ich selbst beim Vergleich mit "is" ein True.Wenn man beide Indizes ausspart (s[:]), lässt sich auch eine echte Kopie der Sequenz erzeugen, weil dann alle Elemente vom ersten bis zum letzten kopiert werden. Beachten Sie bitte die unterschiedlichen Ergebnisse der beiden folgenden Code-Ausschnitte:
>>> s1 = "Kopier mich!"
>>> s2 = s1
>>> s1 == s2
True
>>> s1 is s2
True
Wie erwartet verweisen s1 und s2 auf dieselbe Instanz, sind also identisch. Anders sieht es bei dem nächsten Beispiel aus, bei dem eine echte Kopie von "Kopier mich!" im Speicher erzeugt wird. Dies zeigt sich beim Identitätsvergleich mit is:
>>> s1 = "Kopier mich!"
>>> s2 = s1[:]
>>> s1 == s2
True
>>> s1 is s2
False
Irgendwas kann da ja nicht passen oder? Wäre super wenn mir das jemand erklären kann wie es dazu gekommen ist.
Vielen Dank für Hilfe schon einmal im Voraus
mfg desky