Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich bin neu bei Python (habe mich eine zeitlang an C++ versucht, mich aber jetzt entschieden, doch erstmal mit Python einzusteigen und viel später nochmal einen C++-Versuch zu wagen). Ich arbeite gerade "A Byte of Python" durch und habe eine Frage zum Encoding.
Bei Listen wird für jedes Element `repr(element)` aufgerufen, während `print` ein `str(element)` macht. Intern benötigt ein Umlaut eben zwei Zeichen. Die Umwandlung geschieht erst durch die Darstellung "nach außen".
snafu hat geschrieben:Bei Listen wird für jedes Element `repr(element)` aufgerufen, während `print` ein `str(element)` macht. Intern benötigt ein Umlaut eben zwei Zeichen. Die Umwandlung geschieht erst durch die Darstellung "nach außen".
Die Hilfe spricht bei repr() von einer "string representation", bei str() von einer "nice string representation". Kann man in einfachen Worten erklären, wo der Unterschied in der Arbeitsweise liegt, oder sollte ich mich mit dem Verständnis gedulden, bis ich insgesamt etwas mehr über Python weiß?
@dennis.py: Zwei Anmerkungen: Das was Du da `liste` nennst ist keine sondern ein Tupel. Und man sollte in echten Programmen die Datentypen möglichst aus dem Namen heraus halten. Weil es immer mal wieder vorkommt, dass man den Typen ändert und dann entweder jedes Vorkommen des Namens anpassen muss; oder das lässt und dann irreführende Namen im Programm hat.
BlackJack hat geschrieben:@dennis.py: Zwei Anmerkungen: Das was Du da `liste` nennst ist keine sondern ein Tupel.
Stimmt. Aufgefallen war mir das Phänomen zum ersten Mal bei einer Liste, gestellt habe ich die Frage aber, als ich im Kapitel über Tupel war. Sorry, mein Fehler.
BlackJack hat geschrieben:Und man sollte in echten Programmen die Datentypen möglichst aus dem Namen heraus halten. Weil es immer mal wieder vorkommt, dass man den Typen ändert und dann entweder jedes Vorkommen des Namens anpassen muss; oder das lässt und dann irreführende Namen im Programm hat.
Das ist mir klar und ich hätte es in einem echten Programm auch nicht gemacht. Trotzdem danke für den Hinweis!