Python 2 को 2000 में लॉन्च किया गया था और लंबे समय तक यह दुनिया भर के लाखों डेवलपर्स का मुख्य टूल रहा। 2008 में एक पूरी तरह से नया वर्जन आया — Python 3, जिसने भाषा की आर्किटेक्चर में बड़े सुधार किए।
Python 3 शुरू में Python 2 के साथ पूरी तरह से कम्पैटिबल नहीं था, जिससे डेवलपर समुदाय में बहस छिड़ गई और इसे अपनाने में देरी हुई। लेकिन पिछले 15+ सालों में Python 3 बिना किसी शक के इंडस्ट्री का स्टैंडर्ड बन गया है।
Python 3 के आने की कहानी
Python 3 को इसलिए बनाया गया क्योंकि Python 2 में कुछ बुनियादी आर्किटेक्चरल कमियां थीं जो भाषा के विकास में रुकावट डाल रही थीं:
Unicode सपोर्ट में सुधार — Python 3 डिफ़ॉल्ट रूप से Unicode स्ट्रिंग्स के साथ काम करता है, जो आधुनिक मल्टी-लैंग्वेज ऐप्लिकेशन के लिए बहुत ज़रूरी है।
डेटा टाइप्स का बेहतर प्रबंधन — बाइट्स और स्ट्रिंग्स के बीच साफ अंतर, टाइपिंग में अस्पष्टता को खत्म करना।
सिंटैक्स और सिमैंटिक्स को एक समान बनाना — भाषा में विरोधाभासों को दूर करना, एक अधिक तार्किक और अनुमानित संरचना बनाना।
Python 2 और Python 3 के बीच मुख्य अंतर
टेक्स्ट और एन्कोडिंग के साथ काम करना
Python 2:
print type("text") # <type 'str'>
print type(u"text") # <type 'unicode'>
Python 3:
print(type("text")) # <class 'str'> - डिफ़ॉल्ट रूप से Unicode
print(type(b"text")) # <class 'bytes'>
Python 3 नेटिव रूप से Unicode को सपोर्ट करता है, जिससे Python 2 में एन्कोडिंग से जुड़ी कई समस्याएं हल हो जाती हैं।
गणितीय ऑपरेशन
Python 2:
print 5 / 2 # 2 (पूर्णांक विभाजन)
print 5.0 / 2 # 2.5 (फ्लोटिंग पॉइंट विभाजन)
Python 3:
print(5 / 2) # 2.5 (सटीक विभाजन)
print(5 // 2) # 2 (पूर्णांक विभाजन)
Python 3 में / ऑपरेटर हमेशा फ्लोटिंग पॉइंट रिजल्ट देता है, जिससे व्यवहार अधिक अनुमानित हो जाता है।
सिंटैक्स में बदलाव
print फंक्शन:
# Python 2
print "नमस्ते, दुनिया!"
# Python 3
print("नमस्ते, दुनिया!")
input फंक्शन:
# Python 2
name = raw_input("अपना नाम दर्ज करें: ") # स्ट्रिंग
age = input("अपनी उम्र दर्ज करें: ") # eval() चलाता है
# Python 3
name = input("अपना नाम दर्ज करें: ") # हमेशा स्ट्रिंग
age = int(input("अपनी उम्र दर्ज करें: ")) # स्पष्ट रूपांतरण
इटरेटर और जनरेटर
Python 2:
range(5) # लिस्ट [0, 1, 2, 3, 4] लौटाता है
xrange(5) # जनरेटर लौटाता है
keys = dict.keys() # लिस्ट लौटाता है
Python 3:
range(5) # जनरेटर लौटाता है
list(range(5)) # [0, 1, 2, 3, 4]
keys = dict.keys() # डिक्शनरी व्यू लौटाता है
वर्जन सपोर्ट की मौजूदा स्थिति
Python 2 का सपोर्ट खत्म होना
1 जनवरी 2020 को Python Software Foundation ने आधिकारिक तौर पर Python 2.7 का सपोर्ट बंद कर दिया। इसका मतलब है:
- सुरक्षा अपडेट नहीं मिलेंगे
- नई सुविधाओं का विकास बंद
- गंभीर बग्स के लिए कोई फिक्स नहीं
- प्रमुख लाइब्रेरीज़ का सपोर्ट खत्म
Python 3 का सक्रिय विकास
Python 3 नियमित अपडेट के साथ लगातार विकसित हो रहा है:
- Python 3.12 (2023) — परफॉरमेंस में सुधार और टाइपिंग की नई सुविधाएं
- Python 3.13 (2024) — एक्सपेरिमेंटल JIT-कंपाइलर