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

पायथन में डिवीजन ऑपरेटर्स

पायथन में डिवीजन का व्यवहार संस्करणों के बीच बदल गया है, जो एक सामान्य भ्रम का स्रोत है।

पायथन 2.x में व्यवहार

पायथन 2 में / ऑपरेटर आर्गुमेंट्स पर निर्भर करता था:

  • दोनों इंटीजर हों तो फ्लोर डिवीजन (पूर्णांक परिणाम)।
  • कोई एक फ्लोट हो तो ट्रू डिवीजन (फ्लोट परिणाम)।
>>> # Python 2.7
>>> 20 / 7
2
>>> 20.0 / 7
2.857142857142857

समस्या: तापमान रूपांतरण

>>> 18 * 9 / 5 + 32
64          # गलत! पूर्णांक डिवीजन
>>> 18.0 * 9 / 5 + 32
64.4        # सही
>>> 18 == 18.0
True

समान संख्यात्मक मान लेकिन अलग परिणाम!

समाधान: // ऑपरेटर (पायथन 2.2+)

स्पष्ट फ्लोर डिवीजन के लिए // पेश किया गया:

>>> 9 // 2
4
>>> -9 // 2
-5
>>> 9.0 // 2
4.0
>>> -9.0 // 2
-5.0

पायथन 3.x में व्यवहार (वर्तमान मानक)

पायथन 3 ने इस असंगति को ठीक किया:

  • / हमेशा ट्रू डिवीजन करता है (फ्लोट परिणाम)।
  • // हमेशा फ्लोर डिवीजन करता है।
>>> # Python 3.x
>>> 18 * 9 / 5 + 32
64.4
>>> 18.0 * 9 / 5 + 32
64.4
>>> 9 / 2
4.5
>>> -9 / 2
-4.5
>>> 9 // 2
4
>>> -9 // 2
-5

सारांश तालिका

ऑपरेटरपायथन 2 (दोनों int)पायथन 3
/फ्लोर डिवीजन (int)ट्रू डिवीजन (float)
//फ्लोर डिवीजन (int)फ्लोर डिवीजन (int/float)

सर्वोत्तम अभ्यास

  • पायथन 3 में / फ्लोट डिवीजन के लिए, // इंटीजर डिवीजन के लिए उपयोग करें।
  • पायथन 2 कोडबेस में from __future__ import division जोड़कर पायथन 3 व्यवहार प्राप्त करें।
  • स्पष्टता के लिए टाइप कन्वर्जन (float(x)) का उपयोग करने पर विचार करें।
  1. - पायथन में टपल मल्टीप्लिकेशन

    जब टपल मल्टीप्लिकेशन करने की आवश्यकता होती है, तो zip मेथड और जेनरेटर एक्सप्रेशन का उपयोग किया जा सकता है। zip मेथड इटरेबल्स लेता है, उन्हें एक टपल में एग्रीगेट करता है, और परिणाम के रूप में वापस करता है। जेनरेटर इटरेटर्स बनाने का एक सरल तरीका है। यह स्वचालित रूप से __iter__() और __next__() मेथड्स

  1. - पायथन में टपल डिवीज़न

    जब पायथन में टपल डिवीज़न करने की आवश्यकता होती है, तो zip मेथड और जेनरेटर एक्सप्रेशन्स का उपयोग किया जा सकता है। zip मेथड इटरेबल्स लेता है, उन्हें एक टपल में एग्रीगेट करता है, और परिणाम के रूप में वापस करता है। जेनरेटर इटरेटर्स बनाने का एक सरल तरीका है। यह स्वचालित रूप से __iter__() और __next__()

  1. पायथन में पैटर्न कैसे प्रिंट करें पायथन में पैटर्न कैसे प्रिंट करें

    पायथन में पैटर्न्स को नेस्टेड फॉर लूप्स का उपयोग करके प्रिंट किया जा सकता है। बाहरी लूप का उपयोग पंक्तियों की संख्या के माध्यम से इटरेट करने के लिए किया जाता है जबकि आंतरिक लूप का उपयोग स्तंभों की संख्या को संभालने के लिए किया जाता है। प्रिंट स्टेटमेंट को आवश्यकतानुसार विभिन्न पैटर्न बनाने के लिए मॉ