Python 2 wurde im Jahr 2000 veröffentlicht und diente lange Zeit als wichtigstes Werkzeug für Millionen von Entwicklern weltweit. Im Jahr 2008 erschien eine grundlegend neue Version – Python 3, die erhebliche Verbesserungen an der Spracharchitektur mit sich brachte.
Python 3 war anfangs nicht vollständig kompatibel mit Python 2, was in der Entwickler-Community für Diskussionen sorgte und die breite Einführung verlangsamte. In den letzten 15+ Jahren hat sich Python 3 jedoch zum absoluten Industriestandard entwickelt.
Die Entstehungsgeschichte von Python 3
Die Entwicklung von Python 3 war notwendig, um grundlegende architektonische Schwächen von Python 2 zu beheben, die die Weiterentwicklung der Sprache behinderten:
Verbesserte Unicode-Unterstützung – Python 3 arbeitet standardmäßig mit Unicode-Strings, was für moderne mehrsprachige Anwendungen entscheidend ist.
Optimierte Datentyp-Verarbeitung – eine klarere Trennung zwischen Bytes und Strings sowie die Beseitigung von Unklarheiten bei der Typisierung.
Vereinheitlichung von Syntax und Semantik – Beseitigung von Widersprüchen in der Sprache, Schaffung einer logischeren und vorhersagbareren Struktur.
Hauptunterschiede zwischen Python 2 und Python 3
Text- und Kodierungsverarbeitung
Python 2:
print type("text") # <type 'str'>
print type(u"text") # <type 'unicode'>
Python 3:
print(type("text")) # <class 'str'> - Unicode standardmäßig
print(type(b"text")) # <class 'bytes'>
Python 3 unterstützt Unicode nativ, was viele Kodierungsprobleme löst, die für Python 2 typisch waren.
Mathematische Operationen
Python 2:
print 5 / 2 # 2 (Ganzzahldivision)
print 5.0 / 2 # 2.5 (Gleitkommadivision)
Python 3:
print(5 / 2) # 2.5 (echte Division)
print(5 // 2) # 2 (Ganzzahldivision)
In Python 3 gibt der Operator / immer ein Gleitkommaergebnis zurück, was das Verhalten vorhersagbarer macht.
Syntax-Änderungen
Die print-Funktion:
# Python 2
print "Hallo, Welt!"
# Python 3
print("Hallo, Welt!")
Die input-Funktion:
# Python 2
name = raw_input("Name eingeben: ") # String
age = input("Alter eingeben: ") # führt eval() aus
# Python 3
name = input("Name eingeben: ") # immer String
age = int(input("Alter eingeben: ")) # explizite Umwandlung
Iteratoren und Generatoren
Python 2:
range(5) # gibt Liste [0, 1, 2, 3, 4] zurück
xrange(5) # gibt Generator zurück
keys = dict.keys() # gibt Liste zurück
Python 3:
range(5) # gibt Generator zurück
list(range(5)) # [0, 1, 2, 3, 4]
keys = dict.keys() # gibt Dictionary-View zurück
Aktueller Support-Status der Versionen
Ende des Supports für Python 2
Am 1. Januar 2020 hat die Python Software Foundation den Support für Python 2.7 offiziell eingestellt. Das bedeutet:
- Keine Sicherheitsupdates mehr
- Keine Entwicklung neuer Funktionen
- Keine Fehlerbehebungen für kritische Bugs
- Kein Support mehr durch die wichtigsten Bibliotheken
Aktive Weiterentwicklung von Python 3
Python 3 wird mit regelmäßigen Updates aktiv weiterentwickelt:
- Python 3.12 (2023) – Leistungsverbesserungen und neue Typisierungsfunktionen
- Python 3.13 (2024) – experimenteller JIT-Compiler