Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन 2.x और पायथन 3.x के बीच अंतर?

कोडिंग समुदाय में हमेशा एक बहस होती है कि कौन सा पायथन संस्करण सीखने के लिए सबसे अच्छा था:पायथन 2.x या पायथन 3.x।

नीचे पाइटन 2.x और अजगर 3.x के बीच महत्वपूर्ण अंतर हैं

1. प्रिंट फ़ंक्शन

पायथन 2.x में, "प्रिंट" को एक कथन के रूप में माना जाता है और पायथन 3.x स्पष्ट रूप से "प्रिंट" को एक फ़ंक्शन के रूप में मानता है। इसका मतलब है कि हमें आपके प्रिंट के अंदर की वस्तुओं को मानक तरीके से फ़ंक्शन कोष्ठक में पास करना होगा अन्यथा आपको एक सिंटैक्स त्रुटि मिलेगी।

#Python 2.7

print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "text", ; print 'some more text here'

आउटपुट

Python 2.7.6
Hello, World!
Hello, World!
text print some more text here
Python 3
import sys
print("Python version is %s.%s.%s" %sys.version_info[:3])
print('Hello, World!')

print("some text,", end="")
print('some more text here')

आउटपुट

Python version is 3.6.1
Hello, World!
some text,some more text here
>>> print "Hello"
Syntax Error: Missing parentheses in call to 'print'

2. पूर्णांक विभाजन

पायथन 2 दशमलव बिंदु के बाद बिना किसी अंक के आपके द्वारा टाइप की गई संख्याओं को पूर्णांक मानता है, जिससे विभाजन के दौरान कुछ अप्रत्याशित परिणाम हो सकते हैं। उदाहरण के लिए, यदि आप पायथन 2 कोड में अभिव्यक्ति 3/2 टाइप करते हैं, तो मूल्यांकन का परिणाम 1 होगा, न कि 1.5 जैसा कि आप उम्मीद कर सकते हैं। अपने पायथन 3 कोड में केवल x का उपयोग करने के बजाय या तो फ्लोट (x) का उपयोग करने की अनुशंसा की जाती है (कोडबेस पोर्ट को पायथन 2 में शामिल करें) या अपनी पायथन 2 स्क्रिप्ट में __future__ आयात डिवीजन से उपयोग करें।

#पायथन 2

print 'Python', python_version()
print '3 / 2 =', 3 / 2
print '3 // 2 =', 3 // 2
print '3 / 2.0 =', 3 / 2.0
print '3 // 2.0 =', 3 // 2.0

आउटपुट

Python 2.7.6
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

#पायथन 3.6.1

import sys
print('Python %s.%s.%s' %sys.version_info[:3])
print('3 / 2 =', 3 / 2)
print('3 // 2 =', 3 // 2)
print('3 / 2.0 =', 3 / 2.0)
print('3 // 2.0 =', 3 // 2.0)

आउटपुट

Python 3.6.1
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

3. यूनिकोड स्ट्रिंग्स

डिफ़ॉल्ट रूप से, पायथन 3 स्ट्रिंग्स को यूनिकोड के रूप में संग्रहीत करता है जबकि पायथन 2 के लिए आपको "यू" के साथ एक स्ट्रिंग को चिह्नित करने की आवश्यकता होती है यदि आप इसे यूनिकोड के रूप में संग्रहीत करना चाहते हैं। यूनिकोड स्ट्रिंग्स ASCII स्ट्रिंग्स की तुलना में अधिक बहुमुखी हैं, जो कि Python 2 डिफ़ॉल्ट हैं, क्योंकि वे विदेशी भाषाओं के अक्षरों के साथ-साथ इमोजी और मानक रोमन अक्षरों और अंकों को भी स्टोर कर सकते हैं।

#पायथन 2

>>> print type(unicode('this is like a python3 str type'))
<type 'unicode'>
>>> print type(b'byte type does not exist')
<type 'str'>
>>> print 'they are really' + b' the same'
they are really the same

#पायथन 3

import sys
print('Python %s.%s.%s' %sys.version_info[:3])
print('strings are now utf-8 \u03BCnico\u0394é!')
print('Python %s.%s.%s' %sys.version_info[:3], end="")
print(' has', type(b' bytes for storing data'))
print('Python %s.%s.%s' %sys.version_info[:3], end="")
print(' also has', type(bytearray(b'bytearrays')))

आउटपुट

Python 3.6.1
strings are now utf-8 μnicoΔé!
Python 3.6.1 has <class 'bytes'>
Python 3.6.1 also has <class 'bytearray'>
भी है।

"स्ट्रिंग" + बी "डेटा के बाइट्स" एक त्रुटि के माध्यम से होगा।

>>> print ('they are really' + b' the same')
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
print ('they are really' + b' the same')
TypeError: must be str, not bytes

4. अपवाद उठाना

अपवादों को बढ़ाने के लिए पायथन 3 को अलग-अलग सिंटैक्स की आवश्यकता होती है। यदि आप उपयोगकर्ता को एक त्रुटि संदेश आउटपुट करना चाहते हैं, तो आपको सिंटैक्स का उपयोग करने की आवश्यकता है -

raise IOError(“your error message”)

उपरोक्त सिंटैक्स पायथन 2 और पायथन 3 दोनों पर काम करता है।

हालांकि, निम्नलिखित कोड केवल अजगर 2 में काम करता है, अजगर 3 में नहीं

raise IOError, “your error message”

5. सूची समझ लूप चर

पायथन 2 में, वेरिएबल को "लूप के लिए" में वैश्विक वैरिएबल के समान नाम देने से ग्लोबल वैरिएबल का मान बदल सकता है - जो आम तौर पर हम नहीं चाहते हैं। यह समस्या पायथन 3 में तय की गई है, इसलिए आप अपने "लूप के लिए" में नियंत्रण चर के लिए पहले से उपयोग किए गए एक चर नाम का उपयोग कर सकते हैं, इसके बारे में चिंता किए बिना कि यह आपके बाकी कोड में चर के मूल्यों के साथ लीक और गड़बड़ कर रहा है।

#Python 2
print 'Python', python_version()
i = 1
print 'before: i =', i
print 'comprehension: ', [i for i in range(5)]
print 'after: i =', i

आउटपुट

Python 2.7.6
before: i = 1
comprehension: [0, 1, 2, 3, 4]
after: i = 4

#पायथन 3

import sys
print('Python %s.%s.%s' %sys.version_info[:3])
i = 1
print('before: i =', i)
print('comprehension:', [i for i in range(5)])
print('after: i =', i)

आउटपुट

Python 3.6.1
before: i = 1
comprehension: [0, 1, 2, 3, 4]
after: i = 1

  1. विंडोज एक्सपी और विंडोज 7 के बीच शीर्ष 10 अंतर

    यदि आपने कई अन्य लोगों की तरह विंडोज विस्टा को छोड़ दिया है, तो विंडोज एक्सपी से विंडोज 7 में अपग्रेड करने पर आपको झटका लग सकता है। माइक्रोसॉफ्ट का नवीनतम ऑपरेटिंग सिस्टम विंडोज के पिछले संस्करणों से उपयोगिता, सुविधा और समग्र कंप्यूटिंग में एक प्रमुख बदलाव है। । हालांकि सभी बदलाव नहीं हैं, लेकिन नी

  1. अजगर 2.x और अजगर 3.x संस्करणों के बीच क्या अंतर हैं?

    पायथन 2.x विरासत है, पायथन 3.x भाषा का वर्तमान और भविष्य है। सुविधाओं की एक गैर-विस्तृत सूची जो केवल 3.x रिलीज़ में उपलब्ध है और Python 2.x में उपलब्ध नहीं है - स्ट्रिंग्स डिफ़ॉल्ट रूप से यूनिकोड हैं स्वच्छ यूनिकोड/बाइट पृथक्करण अपवाद श्रृखंला फ़ंक्शन एनोटेशन केवल-कीवर्ड तर्कों के लिए

  1. पायथन 2.7.x और पायथन 3.x के बीच महत्वपूर्ण अंतर क्या हैं?

    पायथन 3.0 को दिसंबर 2008 में जारी किया गया था। इसे पुराने संस्करण में कुछ खामियों को सुधारने के लिए डिज़ाइन किया गया था। पायथन 3 का मार्गदर्शक सिद्धांत था:चीजों को करने के पुराने तरीकों को हटाकर फीचर दोहराव को कम करें। पायथन 3.0 पश्चगामी संगतता प्रदान नहीं करता है। इसका मतलब है कि संस्करण 2.x सिंटैक