पायथन 3 में नया क्या है

भविष्य__ मॉड्यूल

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

उदाहरण के लिए, अगर हम पायथन 2 में Python 3.x के पूर्णांक डिवीजन व्यवहार को चाहते हैं, तो निम्न आयात स्टेटमेंट जोड़ें।

भविष्य से आयात विभाग से

प्रिंट फ़ंक्शन
पायथन 3 में सबसे उल्लेखनीय और सर्वाधिक व्यापक रूप से ज्ञात परिवर्तन प्रिंट फ़ंक्शन का उपयोग कैसे किया जाता है। प्रिंट फ़ंक्शन के साथ कोष्ठक () का उपयोग अब अनिवार्य है। यह पायथन 2 में वैकल्पिक था

प्रिंट "हैलो वर्ल्ड" # यह पायथन 2 में स्वीकार्य है
प्रिंट ("हैलो वर्ल्ड") # पायथन 3 में, प्रिंट द्वारा पीछा किया जाना चाहिए ()
प्रिंट () फ़ंक्शन, डिफ़ॉल्ट रूप से अंत में एक नई पंक्ति सम्मिलित करता है। पायथन 2 में, अंत में ',' डालकर इसे दबाया जा सकता है। पायथन 3 में, "अंत = ''" नई लाइन के बजाय स्थान जोड़ता है

प्रिंट एक्स, # ट्रेमा अल्पविराम अजगर 2 में नई लाइन को दबा देता है
प्रिंट (x, end = "") # पायथन 3 में एक नई लाइन के बजाय स्थान जोड़ता है
कीबोर्ड से इनपुट पढ़ना
पायथन 2 के इनपुट फ़ंक्शन, इनपुट () और raw_input () के दो संस्करण हैं इनपुट () फ़ंक्शन प्राप्त डेटा को स्ट्रिंग के रूप में मानता है यदि यह उद्धरण "" या "" में शामिल है, अन्यथा डेटा को संख्या के रूप में माना जाता है

पायथन 3 में, raw_input () फ़ंक्शन को बहिष्कृत किया गया है। इसके अलावा, प्राप्त आंकड़ों को हमेशा स्ट्रिंग के रूप में माना जाता है।

पायथन 2 में


>>> एक्स = इनपुट ('कुछ:')
कुछ: 10 # केंद्रित डेटा को संख्या के रूप में माना जाता है
>>> एक्स
10

>>> एक्स = इनपुट ('कुछ:')
कुछ: '10 '# इंगित डेटा स्ट्रिंग के रूप में माना जाता है
>>> एक्स
'10'

>>> x = raw_input ("कुछ:")
कुछ: 10 # निर्देशित डेटा स्ट्रिंग के रूप में माना जाता है बिना ''
>>> एक्स
'10'

>>> x = raw_input ("कुछ:")
कुछ: '10 '# केंद्रित डेटा को' 'सहित स्ट्रिंग के रूप में माना जाता है
>>> एक्स
" '10' '

पायथन 3 में


>>> x = इनपुट ("कुछ:")
कुछ: 10
>>> एक्स
'10'

>>> x = इनपुट ("कुछ:")
कुछ: '10 '# निर्देशित डेटा को स्ट्रिंग के रूप में माना जाता है या बिना' '
>>> एक्स
" '10' '

>>> x = raw_input ("कुछ:") # का परिणाम होगानामहरण
ट्रेसबैक (सबसे हाल ही में कॉल अंतिम):
   फ़ाइल "<pyshell # 3>", पंक्ति 1, में
  <मॉड्यूल>
   x = raw_input ("कुछ:")
नाम त्रुटि: नाम 'raw_input' परिभाषित नहीं है

पूर्णांक प्रभाग

पायथन 2 में, दो पूर्णांक के विभाजन का नतीजा निकटतम पूर्णांक में गोल है नतीजतन, 3/2 दिखाएगा 1. फ्लोटिंग-प्वाइंट डिवीजन प्राप्त करने के लिए, अंश या भाजक स्पष्ट रूप से फ्लोट के रूप में उपयोग किया जाना चाहिए। इसलिए, 3.0 / 2 या 3 / 2.0 या 3.0 / 2.0 का परिणाम 1.5 में होगा

अजगर 3 मूल रूप से 3/2 के रूप में 1.5 का मूल्यांकन करता है, जो नए प्रोग्रामर के लिए अधिक सहज है।

यूनिकोड प्रतिनिधित्व

पायथन 2 के लिए आपको एक स्ट्रिंग को यू के साथ चिह्नित करना होगा यदि आप इसे यूनिकोड के रूप में संग्रहीत करना चाहते हैं

पायथन 3 डिफ़ॉल्ट रूप से, यूनिकोड के रूप में तारों को स्टोर करता है। हमारे पास यूनिकोड (यूटीएफ -8) स्ट्रिंग और 2 बाइट क्लास हैं: बाइट और बाइट एरेज़

एक्सरेन्ज () फ़ंक्शन हटाया गया

पायथन 2 रेंज () में एक सूची लौटाई जाती है, और एक्सरेन्ज () एक ऑब्जेक्ट देता है जो आवश्यक होने पर केवल आइटम्स को उत्पन्न करेगी, मेमोरी की बचत करेगी।

पायथन 3 में, रेंज () फ़ंक्शन को निकाल दिया जाता है, और एक्सरेन्ज () को श्रेणी के रूप में बदल दिया गया है ()। इसके अलावा, रेंज () ऑब्जेक्ट स्लेसिंग का पायथन 3.2 और बाद में समर्थन करता है।

एक्ससिप्रियन उठाना
पायथन 2 दोनों नोटेशन स्वीकार करता है, 'पुराना' और 'नया' वाक्यविन्यास; पायथन 3 एक सिंटेक्स त्रुटि उठाती है अगर हम कोष्ठक में अपवाद तर्क संलग्न नहीं करते हैं।

IOError बढ़ाएं, "फ़ाइल त्रुटि" # यह पायथन 2 में स्वीकार किया गया है
IOError बढ़ाएं ("फ़ाइल त्रुटि") # यह पायथन 2 में भी स्वीकार किया गया है
IOError बढ़ाएं, "फ़ाइल त्रुटि" #syntax त्रुटि को पायथन 3 में उठाया गया है
IOError बढ़ाएं ("फ़ाइल त्रुटि") # यह पायथन 3 में अनुशंसित सिंटैक्स है
अपवादों में तर्क
पायथन 3 में, अपवाद के तर्क 'के रूप में' कीवर्ड के साथ घोषित किए जाने चाहिए।

आतंक के अलावा, त्रुटि: # पायथन 2 में
आतंक के अलावा गलती: # पायथन 3 में
अगला () फ़ंक्शन और .next () विधि
अजगर 2 में, अगले () जनरेटर वस्तु की एक विधि के रूप में, अनुमति दी जाती है। अजगर 2 में, जनरेटर ऑब्जेक्ट पर पुनरावृति करने के लिए अगले () फ़ंक्शन को भी स्वीकार किया जाता है। अजगर 3 में, हालांकि, अगले (0 एक जनरेटर पद्धति के रूप में बंद कर दिया गया है और एट्रिब्यूट एरर को बढ़ा देता है

gen = ('हैलो वर्ल्ड' में पत्र के लिए पत्र) # जनरेटर ऑब्जेक्ट बनाता है
अगले (my_generator) # पायथन 2 और पायथन 3 में नामांकित
my_generator.next () # पायथन 2 में अनुमति दी। पायथन 3 में AttributeError बढ़ाता है
2to3 उपयोगिता
पायथन 3 दुभाषिया के साथ, 2to3.py स्क्रिप्ट आमतौर पर टूल्स / स्क्रिप्ट फ़ोल्डर में इंस्टॉल की जाती है यह पायथन 2.x स्रोत कोड पढ़ता है और इसे एक वैध पायथन 3.x कोड में बदलने के लिए एक फिक्सर्स की एक श्रृंखला लागू करता है।

यहां एक नमूना पायथन 2 कोड (area.py) है:

डीफ़ क्षेत्र (एक्स, वाई = 3.14):
   a = y * x * x
   प्रिंट करें
   वापस आओ

ए = क्षेत्र (10)
प्रिंट "क्षेत्र", ए

पायथन 3 संस्करण में कनवर्ट करने के लिए:

$ 2 से 3-w क्षेत्र

परिवर्तित कोड:

डीफ़ क्षेत्र (एक्स, वाई = 3.14): # औपचारिक पैरामीटर
   a = y * x * x
   प्रिंट (ए)
   वापस आओ

ए = क्षेत्र (10)
प्रिंट ( "क्षेत्र", एक)

No comments:

Post a Comment

My Instagram