Python 2 या Python 3: 2024 में कौन सा चुनें? PythonLib गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

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-कंपाइलर

ब्लॉग

पुस्तक अनुशंसाएँ