पायथन में यूनरी इंक्रीमेंट/डिक्रीमेंट ऑपरेटर (++/--) नहीं है। मान बढ़ाने के बजाय, उपयोग करें
a += 1
किसी मान को घटाने के लिए, उपयोग करें−
a -= 1
उदाहरण
>>> a = 0 >>> >>> #Increment >>> a +=1 >>> >>> #Decrement >>> a -= 1 >>> >>> #value of a >>> a 0
पायथन एक ही काम करने के कई तरीके प्रदान नहीं करता है।
हालाँकि, सावधान रहें यदि आप C जैसी भाषा से आ रहे हैं, तो पायथन में "चर" नहीं है, इस अर्थ में कि C करता है, इसके बजाय अजगर नामों और वस्तुओं का उपयोग करता है और अजगर में पूर्णांक (int) अपरिवर्तनीय होते हैं।
आइए इसे एक उदाहरण से समझते हैं-
>>> a =1 >>> print(id(a)) 1919375088 >>> print(hex(id(a))) 0x726756f0
तो अजगर में उपरोक्त कथन का अर्थ है:एक प्रकार की वस्तु बनाएं जिसका मान 1 हो और उसे नाम दें। ऑब्जेक्ट int का एक उदाहरण है जिसका मान 1 है और नाम इसका संदर्भ देता है। निर्दिष्ट नाम a और जिस वस्तु को यह संदर्भित करता है वह अलग है।
अब वृद्धि करते हैं a
>>> a +=1 >>> print(id(a)) 1919375104 >>> print(hex(id(a))) 0x72675700
जैसा कि int अपरिवर्तनीय हैं, अजगर उपरोक्त कथन को इस रूप में समझता है
-
उस वस्तु को देखें जिसे a संदर्भित करता है (यह एक int और id 0x726756f0) है
-
ऑब्जेक्ट का मान देखें 0x726756f0 (यह 1 है)।
-
उस मान में 1 जोड़ें (1+1 =2)
-
मान 2 के साथ एक नया इंट ऑब्जेक्ट बनाएं (ऑब्जेक्ट आईडी 0x72675700 के साथ)।
-
इस नई वस्तु (0x72675700) के लिए नाम को फिर से बांधें
-
अब a ऑब्जेक्ट 0x72675700 को संदर्भित करता है और पिछली ऑब्जेक्ट (0x726756f0) को अब a नाम से संदर्भित नहीं किया जाता है। यदि मूल वस्तु के संदर्भ में कोई अन्य नाम नहीं हैं, तो यह बाद में एकत्र किया गया कचरा होगा।
तो ऊपर से, आप समझ सकते हैं कि हम कब करते हैं:a +=1
यह a को a+1 को पुन:असाइन करेगा। यह इंक्रीमेंट ऑपरेटर नहीं है, क्योंकि यह a को नहीं बढ़ाता है, लेकिन इसे फिर से असाइन करता है।
आइए कुछ और उदाहरण के साथ उपरोक्त वेतन वृद्धि/कमी को समझते हैं-
>>> a = b = c =1 >>> id(a) 1919375088 >>> id(b) 1919375088 >>> id(c) 1919375088 >>> #Above all have the same id >>> >>> # Now increment a >>> a +=1 >>> id(a) 1919375104 >>> id(b) 1919375088 >>> id(c) 1919375088
ऊपर से आप समझ सकते हैं कि हमारे पास एक ही वस्तु है जिसे ए, बी और सी संदर्भित करता है (आईडी 1919375088 के साथ एक इंट)
a के मान को बढ़ाने पर, अब a को a+1 (id:1919375104) पर फिर से साइन किया जाता है और अन्य b और c एक ही ऑब्जेक्ट (1919375088) को संदर्भित करता है।
इसके अलावा अजगर ++/-- ऑपरेटर के साथ आता है।
>>> a =1 >>> ++a 1 >>> --a 1