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

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

आम तौर पर, किसी व्यंजक का डेटा प्रकार तर्कों के प्रकारों पर निर्भर करता है। यह नियम अधिकांश ऑपरेटरों पर लागू होता है:जैसे जब हम दो पूर्णांक जोड़ते हैं, तो परिणाम एक पूर्णांक होना चाहिए। हालाँकि, विभाजन के मामले में यह अच्छी तरह से काम नहीं करता है क्योंकि दो अलग-अलग अपेक्षाएँ हैं। कभी-कभी हम विभाजन से सटीक फ़्लोटिंग पॉइंट संख्या उत्पन्न करने की अपेक्षा करते हैं और दूसरी बार हम एक पूर्णांकित पूर्णांक परिणाम चाहते हैं।

सामान्य तौर पर, विभाजन (/) की पायथन परिभाषा पूरी तरह से तर्कों पर निर्भर करती है। उदाहरण के लिए अजगर 2.7 में, 20/7 को विभाजित करना 2 था क्योंकि दोनों तर्क जहां पूर्णांक हैं। हालांकि, 20./7 आउटपुट के रूप में 2.857142857142857 उत्पन्न करेगा क्योंकि तर्क फ्लोटिंग पॉइंट नंबर थे।

'/' की उपरोक्त परिभाषा अक्सर उन अनुप्रयोगों के लिए समस्याएँ पैदा करती है जहाँ डेटा प्रकारों का उपयोग किया गया था जिसकी लेखक को उम्मीद नहीं थी।

तापमान को सेल्सियस से फ़ारेनहाइट में परिवर्तित करने के एक सरल कार्यक्रम पर विचार करें, इनपुट के आधार पर दो अलग-अलग परिणाम उत्पन्न होंगे। यदि एक उपयोगकर्ता पूर्णांक तर्क (18) और दूसरा फ़्लोटिंग पॉइंट तर्क (18.0) प्रदान करता है, तो उत्तर पूरी तरह से अलग थे, भले ही सभी इनपुट में समान संख्यात्मक मान थे।

#Conversion of celcius to Fahrendheit in python 2.6
>>> print 18*9/5 + 32
64
>>> print 18.0*9/5 + 32
64.4
>>> 18 == 18.0
True

ऊपर से हम देख सकते हैं, जब हम 18.0 पास करते हैं, तो हमें सही आउटपुट मिलता है और जब हम 18 पास करते हैं, तो हमें गलत आउटपुट मिल रहा है। यह व्यवहार इसलिए है क्योंकि अजगर 2.x में, "/" ऑपरेटर सभी तर्कों के पूर्णांक होने की स्थिति में फर्श विभाजन के रूप में काम करता है। हालांकि, अगर तर्कों में से एक फ्लोट वैल्यू है तो "/" ऑपरेटर एक फ्लोट वैल्यू देता है।

एक स्पष्ट रूपांतरण फ़ंक्शन (जैसे फ्लोट (x)) इसे रोकने में मदद कर सकता है। हालांकि, विचार यह है कि अप्रत्याशित डेटा प्रकार के दुर्लभ मामले को कवर करने के लिए रूपांतरणों की घनी अव्यवस्था के बिना, अजगर सरल और विरल भाषा हो। पायथन 2.2 संस्करण के साथ शुरू, एक नया डिवीजन ऑपरेटर जोड़ा गया था जो स्पष्ट करने के लिए अपेक्षित था। भविष्य में सामान्य / ऑपरेटर फ्लोटिंग-पॉइंट परिणाम लौटाएगा। एक विशेष डिवीजन ऑपरेटर, //, राउंड-डाउन परिणाम लौटाएगा।

>>> # Python 2.7 program to demonstrate the use of "//" for both integers and floating point number
>>> print 9//2
4
>>> print -9//2
-5
>>> print 9.0//2
4.0
>>> print -9.0//2
-5.0

पायथन 3.x में डिवीजन ऑपरेशन

पायथन 3.x में, ऊपर उल्लिखित दोषों को हटा दिया गया था और '/' ऑपरेटर पूर्णांक और फ़्लोटिंग पॉइंट तर्क दोनों के लिए फ़्लोटिंग पॉइंट डिवीजन करता है।

>>> #Conversion of celcius to Fahrendheit in python 3.x
>>> #Passing 18 (integer)
>>> print (18*9/5 + 32)
64.4
>>> #Passing 18.0(float)
>>> print(18.0*9/5 + 32)
64.4

साथ ही जब हम +ve या –ve तर्क पास करते हैं तो कोई फर्क नहीं पड़ता।

>>> print(9/2)
4.5
>>> print(-9/2)
-4.5
>>> print(9.0/2)
4.5
>>> print(-9.0/2)
-4.5

  1. पायथन में टपल गुणन

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

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

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

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

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