Wozu braucht man 3 Stringtypen in Python?

Das Ergebnis basiert auf 6 Abstimmungen

Absolut nicht, man braucht mehrere. 83%
Man kann nur mit einem Typen auskommen 17%

2 Antworten

Absolut nicht, man braucht mehrere.

Mindestens String und Byte-String sind definitiv notwendig.

Der so ziemlich größte Unterschied zwischen den beiden is der, dass ein "normaler" String zur Verarbeitung von Textinformationen ausgelegt ist, die je nach Codierung auch mehr als ein Byte je Zeichen haben können.

Beispiel:

>>> s = "\u221e"
>>> print(s)
∞
>>> print(len(s))
1
>>> b = bytes(s, "utf-16be")
>>> print(b)
b'"\x1e'
>>> print(len(b))
2

In diesem Beispiel wird zwar nicht alles offensichtlich, aber es kann u.U. durchaus zu Problemen führen, wenn Binärdaten gelesen, als Text interpretiert verarbeitet und dann wieder geschrieben werden.

Beispielsweise dann, wenn die Daten ursprünglich in "Little Endian"-Form gespeichert waren, dann beim Auslesen als "Big Endian"-Unicode-Text gewertet und als solcher auch wieder gespeichert werden.

Andererseits kann es auch wieder eine Menge Aufwand sein, Unicode-Text ordentlich darzustellen, wenn man nur ein Byte für jedes Zeichen zur Verfügung hat.

Troubletvri 
Fragesteller
 31.07.2019, 22:15

Ich würde gerne anmerken, dass ich Pythonanfänger bin und nichts vom oberen Code und deiner Erklärung verstanden habe,.jedoch bedanke ich mich trotzdem mal für die Bemühung, mir die Notwendigkeit von beiden Typen näherzubringen.

0
Absolut nicht, man braucht mehrere.

Alle haben Ihre Aufgaben. Das wäre als würdest Du einfach Int entfernen. Eventuell hast Du eben noch keine Anwendung geschrieben, die alle Typen braucht.